2012-08-10 2 views
0

Я пытался понять это в течение нескольких часов, есть много похожих тем, но все еще не может найти ответ на мой , Я надеюсь, что кто-то может помочь мне здесь, вот что я пытаюсь сделать:SQL: показать значение столбца A, если значение столбца B соответствует столбцу B в другой таблице

У меня есть таблица под названием «бренд» и таблица называется «продукт» Я пытаюсь построить запрос, который покажет product_id из таблицы «продукт», если brand_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 выбран Я хочу, чтобы показать все product_id с Brand_ID 3 в

у меня до сих пор:

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'] . "'"); 

Кто-нибудь сможет помочь мне заставить это работать, как я описал, пожалуйста? С уважением

+1

Посмотрите "внутреннее соединение" в Википедии. –

ответ

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 :) 
0

Возможно, это?

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

ОТ марки как b INNER JOIN product as p ON b.brand_id = p.brand_id WHERE b.brand_id = <идентификатор бренда здесь> – FrankieTheKneeMan

+0

@vtonehundred. , , если вы хотите ответить на вопрос, используйте правильный синтаксис соединения (ключевое слово «join», «on»). –

+0

@GordonLinoff это также действительный синтаксис, но старый и который также склонен к тому, чтобы привести «cross join». правильно? :) –

Смежные вопросы