0

当我编写时,查询按预期执行:

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,但在这种情况下结果是一样的。)

我觉得我错过了一些简单的东西。

编辑:以下是定义:

第1天

id bigint(8) NOT NULL
count bigint(21) NOT NULL

第2天

(与第 1 天相同)

这个想法是 day2 表中可能存在 day1 中不存在的新 id。

4

2 回答 2

1

你过度设计了它。从 where 子句中取出“as t1”。

于 2013-04-22T19:12:34.380 回答
1

使用别名或表名。

SELECT day2.id, day2.count - day1.count AS diff
FROM day1 RIGHT JOIN day2
ON day1.id = day2.id
于 2013-04-22T19:16:34.993 回答