2012-08-10 78 views
0

我一直在試圖弄清楚幾個小時,有許多類似的主題,但仍似乎無法找到我的答案。 我希望有人能幫助我在這裏,這裏就是我想要做的事:SQL:如果列B的值與另一個表中的列B匹配,則顯示列A的值

我有一個表稱爲「品牌」和一張桌子稱爲「產品」 我試圖建立一個如果該表中的brand_id與表「brand」中的brand_id相同,則該表將顯示來自表「產品」的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'] . "'"); 

任何人都可以幫助我像我描述的那樣工作嗎? Regards

+1

查找 「內部連接」 在維基百科上。 – 2012-08-10 00:03:51

回答

2

我會建議你使用ANSI SQL-92語法,而不是ANSI SQL-89語法,因爲如果沒有適當的加入結果CROSS JOINRead 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 :) 
0

也許這樣?

SELECT 
    b.brand_name, 
    p.product_id 
FROM 
    brand AS b, 
    product AS p 
WHERE 
    b.brand_id = p.brand_id 
+0

FROM brand as b INNER JOIN product as p ON b.brand_id = p.brand_id WHERE b.brand_id = FrankieTheKneeMan 2012-08-10 00:08:14

+0

@vtonehundred。 。 。如果您要回答問題,請使用正確的連接語法(「連接」關鍵字,「on」語句)。 – 2012-08-10 00:36:18

+0

@GordonLinoff這也是一個有效的語法,但一箇舊的,也容易導致「交叉連接」。對? :) – 2012-08-10 00:38:42

相關問題