0

我已经尝试了几个小时来解决这个问题,有很多类似的主题,但似乎仍然无法找到我的答案。我希望有人可以在这里帮助我,这就是我正在尝试做的事情:

我有一个名为“brand”的表和一个名为“product”的表 我正在尝试构建一个查询,如果该表中的brand_id与表“brand”中的brand_id相同,它将显示表“product”中的product_id .

所以基本上我有,品牌表:

brand_name    brand_id
a             1
b             2
c             3

和产品表:

product_id    brand_id
23            2
24            1
25            2
27            3 
28            3

现在,如果选择了brand_id 3,我想显示所有带有brand_id 3 的product_id。

我到目前为止:

SELECT brand_id, brand_name, from " . TABLE_BRAND . " order by brand_name";

SELECT product_id from " . TABLE_PRODUCT . where brand_id = '" . (int)$brands['brand_id'] . "'");

有人能帮我像我描述的那样让它工作吗?问候

4

2 回答 2

2

我建议您使用ANSI SQL-92语法而不是ANSI SQL-89语法,因为如果没有正确地将结果连接到CROSS JOIN. 在这里阅读一些东西:ANSI SQL-92 INNER JOIN。

SELECT  a.Product_ID, b.brand_name
FROM    `product` a 
            INNER JOIN  `brand` b
                ON a.brand_id = b.brand_ID
-- WHERE a.Product_ID = valueHERE       -- <== place condition here :)
于 2012-08-10T00:16:23.220 回答
0

也许这个?

SELECT
    b.brand_name,
    p.product_id
FROM
    brand AS b,
    product AS p
WHERE
    b.brand_id = p.brand_id
于 2012-08-10T00:04:18.397 回答