软件包: package_id、user_id
事务: product_id、user_id、package_id
我希望在具有package_id null或0的事务中选择行,但只有当存在具有相同user_id的其他事务时,包id大于0才是可能的。很抱歉我的英文不好。我试着用Google搜索它,但没能猜出Google查询的正确问题。
我知道这个标题不好,所以请大家推荐一个更好的标题。
Gwynnbleid1
发布于 2011-05-14 01:20:38
也许这...我会不惜一切代价避免子选择,所以它可能会变得疯狂和有点令人困惑,除非我尝试过,否则我永远不会真正知道它是否有效。
SELECT DISTINCT T.*
FROM packages P
LEFT JOIN transactions T
ON P.user_id = T.user_id
LEFT JOIN transactions T2
ON T.user_id = T2.user_id
WHERE ( T.package_id IS NULL
OR T.package_id = 0 )
AND T2.package_id > 0
发布于 2011-05-14 01:15:38
此查询将为至少有一个具有NULL
或0
package_id
的其他事务的用户提供package_id > 0
的所有事务。
SELECT * FROM transactions WHERE user_id IN
(SELECT user_id FROM transactions WHERE package_id IS NULL OR package_id = 0)
AND package_id > 0;
发布于 2011-05-14 01:18:13
SELECT A.* FROM
(SELECT * FROM TRANSACTIONS WHERE (package_id = 0 or package_id is null)) A
(SELECT * FROM TRANSACTIONS WHERE package_id is not null) B
WHERE A.userID = B.userID
https://stackoverflow.com/questions/5995438
复制相似问题