我有一个像客户一样的表:
Name City Country Product
John London UK Crisps
Paul Perth Australia Juice
George Manaus Brazil Bread
Ringo Tokyo Japan Chocolate
我需要根据2个列值是否与另一个表匹配来执行Select语句,例如:
Country Product
UK Crisps
Australia Crips
Brazil Chocolate
Japan Chocolate
这两个值都需要存在于表中,因为我需要在表A中选择一行,其中BOTH值存在于表B的一行中,在表A中有一行其中Country是UK而product是Crisps,应退回,但国家为澳大利亚,产品为薯片不应退回。
我做了什么
我试图加入这些表但没有运气,我也在一个选择声明中尝试了EXISTS,但也不会让我这样做,我现在已经没有想法了
答案 0 :(得分:1)
试试这个
select Name, Product from Table_1
intersect
select Name, Product from Table_2
答案 1 :(得分:0)
这似乎是一个基本的join
:
select c.*
from customers c join
table2
on t2.country = c.country and t2.product = t.product;
或者您可以使用exists
。
答案 2 :(得分:0)
更好的SQL将是
SELECT * FROM table1 t1 WHERE 0< (SELECT count(1)FROM table2 t2 where t2.country = t1.country and t2.product = t1.product);