繁体   English   中英

IF条件以及WHERE NOT EXISTS mysql

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM