我有一個記錄表,它具有自我關係。內部連接的SQL更新
另外 - 使搜索更容易 - 我有一個確定的紀錄已被引用,因此該行現在是「過時的」,並且是唯一有審計目的的標誌:
CREATE TABLE Records
(
RecordID INT(5) NOT NULL,
Replaces INT(5) NULL,
Obsolete INT(1) NOT NULL
)
RecordID
是PK,Replaces
鏈接到之前被替換的RecordID,Obsolete
是冗餘信息,只是說另一個記錄已經替換了這個。它只是使搜索更容易。桌子非常大。這些只是3列。
唯一的問題是:存在於系統中的查詢中的一個錯字所以對於一個小組行,所述作廢值未設置爲1(真)。
此查詢將顯示所有陳舊等於記錄爲0,這應該是等於1:
SELECT *
FROM Records AS rec1
LEFT JOIN Records AS rec2
ON rec1.Replaces = rec2.RecordID
WHERE rec2.RecordID IS NOT NULL
AND rec2.Obsolete = 0;
現在我需要運行一個UPDATE改變所有這些req2.Obsolete從0到1,但我不確定如何使用INNER JOIN編寫查詢。
「你不需要內部連接」 - 如果你的'LEFT OUTER JOIN'是語義上等效於'INNER JOIN'則不會,使其內部聯接? – onedaywhen