我有兩個表:tblProduct,其中包含產品列表,tblConsumer具有使用產品ID的消費者名稱。 現在我需要找到已從產品表中消費所有產品的消費者的姓名。使用INTERSECT的SELECT語句
我試圖用INTERSECT解決這個問題,但問題是我已經在WHERE子句中提供了每個productid。此語法提供了我想要的結果,但是如何在不需要指定每個productID的情況下編寫此查詢。
SELECT ConsumerName FROM tblConsumer WHERE ProductID= 1
INTERSECT
SELECT ConsumerName FROM tblConsumer WHERE ProductID =2
INTERSECT
SELECT ConsumerName FROM tblConsumer WHERE ProductID =3
tblProduct
---------------------------------
ProductID | Product Name
---------------------------------
1 | Mango
2 | Orange
3 | Banana
tblConsumer
---------------------------------
ConsumerName | ProductID
---------------------------------
David | 1
David | 3
David | 2
Henry | 3
Henry | 2
請原諒我的無知,但是你的意思是'UNION',因爲我不知道'INTERSECT'是一個sql語句。哦,並請指定您正在使用的數據庫 –
@AdrianCornish:INTERSECT是一種完美有效的方式來結合查詢,PostgreSQL至少支持它:http://www.postgresql.org/docs/current/interactive/queries-union.html –
@AdrianCornish - INTERSECT在許多RDBMS中有效。 –