我有以下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没有多少经验。 我是否错误地进行了连接?
答案 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
。