我有一个名为 Orders 的表,其中包含 CUSTNUM、PRODNUM、DATE 和 QTY 列。
我正在尝试检索同时订购产品 3737 和产品 9193(特定值)的客户
所以我尝试了以下代码但没有成功:
SELECT CUSTNUM
FROM ORDERS
WHERE PRODNUM = 9193
INTERSECT
(SELECT CUSTNUM
FROM ORDERS
WHERE PRODNUM = 3737);
在进一步阅读此论坛后,我也尝试了以下方法:
SELECT DISTINCT CUSTNUM
FROM ORDERS
WHERE PRODNUM IN (
select PRODNUM FROM ORDERS WHERE PRODNUM = 3737
) AND PRODNUM IN (
Select PRODNUM FROM ORDERS WHERE PRODNUM = 2357
);
尽管我们的教科书中包含了 INTERSECT 运算符,但它似乎不起作用。
我也咨询过INTERSECT in MySQL
最佳答案
MySQL 支持 UNION [ALL],但不支持 MINUS/EXCEPT 和 INTERSECT。
select custnum
from orders
where prodnum in (3737,9193)
group by custnum
having count(distinct prodnum) = 2
或
select custnum
from orders
where prodnum in (3737,9193)
group by custnum
having min(prodnum) = 3737
and max(prodnum) = 9193
关于mysql - MYSQL 编码中的 INTERSECT 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41342911/