簡體   English   中英

LEFT OUTER JOIN的語法錯誤

[英]Syntax error on LEFT OUTER JOIN

我有以下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方面沒有太多經驗。 我的加入有誤嗎?

您錯過了ON子句:

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

需要將條件放在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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM