当我使用RIGHT JOIN时,MYSQL无法识别字段,但在使用NATURAL JOIN时识别

时间:2013-04-22 19:08:15

标签: mysql sql right-join

当我写:

时,查询按预期执行
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天不存在。

2 个答案:

答案 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