SUBSCRIPTIONS (SUB_ID, MAG_ID, RENEW_DATE, CANCEL_DATE, PERIOD)
这是我尝试的但是我得到的是0
SELECT COUNT(DISTINCT SUB_ID)
FROM DVD_SUBSCRIPTIONS
WHERE MAG_ID = 1
AND MAG_ID = 2
AND MAG_ID = 3;
COUNT(DISTINCTSUB_ID)
---------------------
0
帮助plzzz
答案 0 :(得分:5)
以下内容应该有效,内部SELECT将返回已订阅所有3个杂志的订阅者:
SELECT COUNT(*)
FROM (SELECT sub_id, COUNT(distinct mag_id)
FROM dvd_subscriptions
WHERE mag_id IN (1, 2, 3)
GROUP BY sub_id
HAVING COUNT(distinct mag_id) = 3)
答案 1 :(得分:1)
戴夫你不能那样使用AND
,你能想到一个等于1且同时2和3的值吗?您应该使用IN
子句,或者您可以使用OR
,但是这个可以获取mag_id = 1
或mag_id = 2
或mag_id = 3
的数据。如果您想要所有这些数据使用{Vincent'答案中的IN
条款。
查看以下链接以了解详情:SQL-AND-OR,SQL-IN,SQL-HAVING