-3

假设我的数据库上有 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)是甜蜜的产品()

4

3 回答 3

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_IDcategoryName. 因此,在上面的示例中,我使用类别名称来搜索属于某个类别的所有产品。

于 2012-09-09T13:37:06.140 回答
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';

注意查询中表的顺序(应该比其他答案执行得更快!)

于 2012-09-09T13:38:39.070 回答
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'
于 2012-09-09T13:39:38.167 回答