gpt4 book ai didi

MYSQL 查询不返回所有结果

转载 作者:行者123 更新时间:2023-11-29 00:32:54 25 4
gpt4 key购买 nike

我有一个包含以下字段的 View 表:

paymentID, jobID, jobNumber, jobType, countType, countID, salesRep, dealershipName, checkTS, paymentAmount, estimatedMailArrival

当 checkTS 落在特定日期范围内时,我需要选择这些字段。 (checkTS 是一个日期时间字段)。在这些字段之上,我需要从另一个名为 jobtasks 的表中选择两个时间戳(它们可能存在也可能不存在,因此我将使用左连接)。为此,我设置了以下查询:

SELECT 
s.jobID, s.jobNumber, s.jobType, s.countType, s.countID, s.salesRep, s.dealershipName, s.checkTS, s.paymentID, s.paymentAmount, s.estimatedMailArrival,
jt1.completedTimestamp as Art,
jt2.completedTimestamp as List
FROM salesboard s
LEFT JOIN jobtasks jt1 ON s.jobID = jt1.jobID
LEFT JOIN jobtasks jt2 ON s.jobID = jt2.jobID
WHERE
s.checkTS BETWEEN '2013-03-01 00:00:00' AND '2013-03-31 23:59:59' AND
jt1.taskID = 22 AND
jt2.taskID = 23
ORDER BY s.checkTS DESC;

查询没有返回任何错误,但我发现它没有拉取所有记录(它拉取了应该拉取的 242 条记录中的 182 条)。我可以手动进入数据库 (mysql) 并查看应提取但未提取的记录。一个示例 - 时间戳“2013-03-04 10:11:00”未被提取。

如果我删除所有艺术和列表内容,我会得到正确数量的结果...242。

SELECT 
s.jobID, s.jobNumber, s.jobType, s.countType, s.countID, s.salesRep, s.dealershipName, s.checkTS, s.paymentID, s.paymentAmount, s.estimatedMailArrival
FROM salesboard s
WHERE
s.checkTS BETWEEN '2013-03-01 00:00:00' AND '2013-03-31 23:59:59'
ORDER BY s.checkTS DESC;

如果我使用左连接,为什么有些记录不会返回?

最佳答案

当使用 LEFT JOIN 时,将这些表中的字段添加到您的 WHERE 条件对您没有任何好处 - 与 INNER 相同在这一点上加入

我喜欢将那些类型的 WHERE 标准移动到 JOIN 本身:

SELECT 
s.jobID, s.jobNumber, s.jobType, s.countType, s.countID, s.salesRep, s.dealershipName, s.checkTS, s.paymentID, s.paymentAmount, s.estimatedMailArrival,
jt1.completedTimestamp as Art,
jt2.completedTimestamp as List
FROM salesboard s
LEFT JOIN jobtasks jt1 ON s.jobID = jt1.jobID
AND jt1.taskID = 22
LEFT JOIN jobtasks jt2 ON s.jobID = jt2.jobID
AND jt2.taskID = 23
WHERE
s.checkTS BETWEEN '2013-03-01 00:00:00' AND '2013-03-31 23:59:59' AND
ORDER BY s.checkTS DESC;

关于MYSQL 查询不返回所有结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15724483/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com