我花了几个小时试图解决这个问题,有很多类似的主题,但似乎仍然找不到我的答案。 我希望有人可以帮助我,这就是我正在尝试做的事情:
我有一个名为“品牌”的表格和一个名为“产品”的表格 我正在尝试构建一个查询,如果该表中的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'] . "'");
请问有人可以帮助我让它像我描述的那样工作吗? 问候
最佳答案
我建议您使用ANSI SQL-92
语法而不是 ANSI SQL-89
语法,因为如果未正确连接结果为 CROSS JOIN
。 <强> Read something HERE: 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 :)
关于mysql - SQL : Show value of column A if value of column B matches column B in another table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11893686/