2015-03-25 2 views
-1

У меня есть две таблицы, отображаемые здесь:Как присоединиться к таблицам с несколькими условиями в sql?

enter image description here

Я хочу, чтобы выбрать product.maker только если все его product.model в таблице ПК. Таким образом, для того же производителя следующее условие должно быть истинным:

product.model = pc.model 
+0

'WHERE product.model = pc.model' ... Довольно простой материал. –

+0

@RobertHarvey - Сохраните условие соединения в разделе 'ON' вместо предложения' where', которое более читаемо –

+0

Просьба предоставить образцы данных и желаемый результат. Ваш вопрос более двусмыслен, чем вы можете понять. –

ответ

0

«Я хочу, чтобы выбрать product.maker только если все его product.model в стол шт.»

Я интерпретирую это как указание, что вы хотите, чтобы список производителей был таким, что каждая модель, назначенная производителю, находится в таблице pc. Это немного более тонкое, чем простое соединение. Это больше left join с агрегацией и соответствующими условиями:

select p.maker 
from product p left join 
    pc 
    on p.model = pc.model 
group by p.maker 
having count(*) = count(pc.model); 

Условием having является одним из способов проверки того, что есть совпадение для каждой модели в product.

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