我试图找出sql查询中的一个错误,但似乎无法找到它的根源。查询如下所示:
SELECT
DATE(BT.DateCheckedIn) AS X,
DAYOFWEEK(BT.DateCheckedIn) AS DayX,
SUM(IR.QtyCheckedIn) AS C,
AU.AdminUsername,
AU.AdminFirstName,
AU.AdminLastName,
IF(BTE.ProdLogID IS NULL, 'No', 'Yes') AS Exclude
FROM
buying_issuesreceived IR
JOIN buying_transactions BT ON IR.TransactionID = BT.TransactionID
JOIN adminusers AU ON BT.CheckedInByAdminUserID = AU.AdminUserID
LEFT JOIN log_production_bt BTE
ON DATE(BT.DateCheckedIn) = DATE(BTE.ProductionDate)
AND BTE.ProductionSection = 'wtransactions'
AND AU.AdminUsername = BTE.ProductionUsername
WHERE
DATE(BT.DateCheckedIn) BETWEEN DATE '2018-09-24' AND DATE '2018-09-30'
GROUP BY
DATE(BT.DateCheckedIn),
AU.AdminUsername
当这个查询运行时,它有大约50/50的机会返回正确的数据或根本不返回任何数据。没有错误消息。我知道,或者更确切地说,我非常肯定,左连接是罪魁祸首,因为当我从代码中删除它时,我不再得到空表,但我一辈子都搞不清楚为什么这个查询首先会返回不一致的结果。
1条答案
按热度按时间33qvvth11#
这听起来像一个mysql错误。作为解决方法,您可以使用
EXISTS
具有相关子查询。