我有一个问题要问你。我认为这很容易解决,但我非常关注这一点。
我有两张桌子,一张是产品,另一张是收藏。收藏夹表格包含2个字段id_user
和id_product
。
现在,我想查询所有收藏夹产品并在我的网页上显示。我想我必须在我的查询上做join
,但此刻我真的迷路了。
例如,我想用id = 3
来显示用户的所有收藏产品,我该怎么做?
答案 0 :(得分:3)
为了将来参考,在Stack上提问时,您需要包含所有相关信息。比如你的数据库布局。我们不介意读者,但这里有一个猜测。
Select * from Favorites junk
Left join Products poop on
poop.id = junk.id_product
Left join Users stuff on
stuff.id = junk.id_user
答案 1 :(得分:1)
您正在通过联接查找此类查询。
select a.* from favourites as a join products as b on a.id_product= b.id
答案 2 :(得分:0)
您需要针对您的"收藏夹"进行主查询。表并加入products表,假设您的id_product字段指向product表中的id字段:
class AnyType{ }
class ThirdConcretePrototype : Prototype<AnyType> { } // fails at compiletime, AnyType does not inhertit from Prototype<T>
请注意,我在这里使用RIGHT JOIN是因为您希望确保右侧表(在本例中为收藏夹)具有要检索的信息(否则,如果id_product指向不存在的id,您将获得NULL结果) 。另请注意,我已为每个表分别添加了别名(SELECT fav.*, prod.* FROM favourites fav RIGHT JOIN products prod ON prod.id = fav.id
和fav
),因为这样可以更轻松/更快地编写查询。
希望这有帮助!
答案 3 :(得分:0)
您可以使用INNER JOIN。
如果你按照下面的例子,你可以得到这个想法。我不知道你的产品表中有什么。根据您的描述,您似乎加入了用户ID。
USE AdventureWorks;
GO
/*
Create a Join on 2 tables to show information from both. The example tables are from the AdventureWorks database:
Production.Product
Production.ProductInventory
In this example we'll look to get the Product ID and Name from the Product table and the inventory quantity, shelf, and bin from the ProductInventory table.
*/
SELECT
/* Precede each column you want to select with the identifier of which table it's coming from */
prod.ProductID,
prod.Name,
inv.Shelf,
inv.Bin,
inv.Quantity
/* Select items from the Product Table */
FROM Production.Product AS prod
/* Use an INNER JOIN to get the items related to the Product table that are in the ProductInventory table based on the ProductID */
INNER JOIN Production.ProductInventory AS inv ON
prod.ProductID = inv.ProductID