LEFT OUTER JOIN上的语法错误

时间:2016-02-10 11:48:09

标签: mysql sql

我有以下MySQL查询:

SELECT w1.Id
FROM Wills w1 LEFT OUTER JOIN Wills w2
WHERE w1.Id = w2.Id + 1
AND w1.Tmp > w2.Tmp

通过查询,我想比较具有相邻Id的行。我想选择那些比其前任字段更大Tmp字段的字段。

但是,我收到以下错误:

Runtime Error Message:
Line 3: SyntaxError: near 'WHERE w1.Id = w2.Id + 1
AND w1.Tmp > w2.Tmp'

我对SQL和MySQL没有多少经验。 我是否错误地进行了连接?

2 个答案:

答案 0 :(得分:1)

你错过了ON条款:

SELECT w1.Id
FROM Wills w1 LEFT OUTER JOIN Wills w2 ON w1.Id = w2.Id + 1
and  w1.Tmp > w2.Tmp

答案 1 :(得分:1)

需要将条件放在ON子句而不是WHERE子句中:

SELECT w1.Id
FROM Wills w1 LEFT OUTER JOIN 
     Wills w2
     ON w1.Id = w2.Id + 1 AND w1.Tmp > w2.Tmp;

如果WHERE中包含任一条件,则LEFT JOIN将变为INNER JOIN