假设我的数据库中有3个表
Table:Category
category_id
Table:container
container_id
category_id
Table:products
container_id
product_id
如何根据category_id获取所有product_id?
例如,我在上面的表格中有这些数据:
Table: category
sour
sweet
Bitter
Table: container
bottled
sachet
Table: product
sugar
vinegar
cocoa
如何获得类别(tb_product
)甜蜜的所有产品(tb_category
)
答案 0 :(得分:1)
您可以使用INNER JOIN
来解决问题。
SELECT a.*
FROM products a
INNER JOIN container b
on a.container_id = b.container_ID
INNER JOIN Category c
ON b.category_ID = c.categoryID
WHERE c.categoryName = 'sweete'
如您所见,我假设Category
表包含category_ID
列和categoryName
列。因此,在上面的示例中,我使用类别名称来搜索属于特定类别的所有产品。
答案 1 :(得分:0)
select p.*
from Category c
join container c2 on c2.category_id = c.category_id
join product p on p.container_id = c2.container_id
where c.name = 'sweet';
请注意查询中表格的顺序(其执行速度应快于其他答案!)
答案 2 :(得分:0)
你可以像这样使用内连接:
SELECT a.product_id FROM products AS a INNER JOIN container AS b on a.container_id = b.container_Id INNER JOIN Category AS c on b.category_Id = c.category_id where c.category_id = 'new'