当我写:
时,查询按预期执行SELECT id, day2.count - day1.count AS diff
FROM day1 NATURAL JOIN day2;
但我真正想要的是正确的加入。我写的时候,
SELECT T1.id, day2.count - day1.count AS diff
FROM day1 RIGHT JOIN day2 AS T1
ON day1.id = day2.id
它表示无法识别字段列表中的day2.count。 (另外,我不知道在第二个查询中它是否应该是RIGHT OUTER JOIN,但在这种情况下结果是相同的。)
我觉得我错过了一些简单的事情。
编辑:以下是定义:
DAY1
id bigint(8) NOT NULL
count bigint(21) NOT NULL
DAY2
(与day1相同)
这个想法是day2表中可能有新的id在第1天不存在。
答案 0 :(得分:1)
你过度工作了。从你的where子句中取出“as t1”。
答案 1 :(得分:1)
使用别名或表名。
SELECT day2.id, day2.count - day1.count AS diff
FROM day1 RIGHT JOIN day2
ON day1.id = day2.id