【发布时间】:2021-12-25 03:54:21
【问题描述】:
我试图弄清楚为什么这两个 SQL sn-ps 返回不同的结果。
SQL A
SELECT date, id
FROM Table A
LEFT JOIN Table B ON A.id = B.id
AND a.date = date_add('day', -1, CURRENT_DATE);
SQL B
SELECT date, id
FROM Table A
LEFT JOIN Table B ON A.id = B.id
WHERE a.date = date_add('day', -1, CURRENT_DATE);
SQL A 返回表 A 中的所有日期,而 SQL B 只返回昨天。
【问题讨论】:
-
请在代码问题中给出minimal reproducible example--剪切&粘贴&运行代码;具有期望和实际输出的示例输入(包括逐字错误消息);标签和版本;明确的规范和解释。对于包含最少代码的错误,您可以给出的代码是您显示的代码可以通过您显示的代码扩展为不正常。 (调试基础。)对于 SQL 包括 DDL 和表格初始化代码。当你得到一个你不期望的结果时,暂停你的总体目标,切到第一个具有意外结果的子表达式并说出你的期望和原因,并通过文档证明是合理的。 How to AskHelp center
-
@marc_s 不确定“SQL”是指“查询”而不是“DBMS”。 (所以我在编辑时保持不变。)此外,“(代码)sn-p”现在是一个 SO 技术术语,所以我建议只使用它而不是指代码片段。