我一直试图解决这个问题几个小时,有很多类似的话题,但似乎仍然无法找到我的答案。 我希望有人可以帮助我,这就是我要做的事情:
我有一张名为“品牌”的表格和一张名为“product”的表格 我正在尝试构建一个查询,如果该表中的brand_id与表“品牌”中的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'] . "'");
有人能帮助我像我描述的那样开始工作吗? 此致
答案 0 :(得分:2)
我建议您使用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 :)
答案 1 :(得分:0)
也许这个?
SELECT
b.brand_name,
p.product_id
FROM
brand AS b,
product AS p
WHERE
b.brand_id = p.brand_id