[英]IF condition along with WHERE NOT EXISTS mysql
以下是我的查询:
SELECT *
FROM A WHERE NOT EXISTS
(SELECT *
FROM B
WHERE A.ItemCode = B.ItemCode AND A.Store = B.StoreName GROUP BY B.ItemCode,B.StoreName) AND A.Store='Food Store'
我希望添加一个条件,如果B.Date <='2014-05-10',那么仅上述查询可以工作。
假设:-
A表:10条记录,B表:今天的5条记录和昨天的3条记录。 如果选择了昨天的日期,则输出应为表A的7条记录,如果选择了今天的日期,则应从表A的2条记录中找到(5 + 3),如果选择了昨天之前的日期,则表A的所有记录应为被发现。
请帮助我。
如果我没记错的话,U可以在末尾简单地添加它
SELECT * FROM A WHERE NOT EXISTS (SELECT * FROM B WHERE A.ItemCode = B.ItemCode AND A.Store = B.StoreName GROUP BY B.ItemCode,B.StoreName) AND A.Store='Food Store' AND B.Date < '2014-05-10'
您需要在已知B
的查询部分中添加条件。 那是在子查询中:
SELECT *
FROM A
WHERE NOT EXISTS (SELECT 1
FROM B
WHERE A.ItemCode = B.ItemCode AND
A.Store = B.StoreName AND
B.Date <= '2014-05-10'
) AND
A.Store = 'Food Store';
请注意,您在子查询中不需要group by
。 你不在乎排多少 或存在的,任何正当是否符合这些条件。 我也将*
替换为1
。 使用group by
, *
具有误导性,因为它没有聚合功能。 我通常在exists
子句中使用1
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.