0
我有兩個查詢正在運行,一個查找數據庫中的匹配項,另一個查詢更新數據庫中的一列。查詢完全一樣,除了一個是SELECT語句,另一個是UPDATE語句。 WHERE子句中的語法在兩個查詢中完全相同,並且SELECT語句可以找到所有正確的結果,而不會出現任何問題或語法錯誤。第二個查詢給出了這樣的錯誤:在UPDATE查詢中使用INTERSECT時出現SQL語法錯誤
ERROR: near "INTERSECT": syntax error
:
這是SELECT查詢:
SELECT * FROM StudentInfo
WHERE FirstLanguageToOffer = 'French'
OR SecondLanguageToOffer = 'French'
OR ThirdLanguageToOffer = 'French'
INTERSECT
SELECT * FROM StudentInfo WHERE Gender = 'Female'
INTERSECT
SELECT * FROM StudentInfo WHERE MaxPartners > CurrentPartners
INTERSECT
SELECT * FROM StudentInfo WHERE Preference ='Male' OR Preference = 'It doesnt matter'
INTERSECT
SELECT * FROM StudentInfo WHERE LanguageToPractice ='English'
ORDER BY Priority
LIMIT 1;
這是UPDATE查詢:
UPDATE StudentInfo SET CurrentPartners = CurrentPartners -1
WHERE FirstLanguageToOffer = 'French'
OR SecondLanguageToOffer = 'French'
OR ThirdLanguageToOffer = 'French'
INTERSECT
SELECT * FROM StudentInfo WHERE Gender = 'Female'
INTERSECT
SELECT * FROM StudentInfo WHERE MaxPartners > CurrentPartners
INTERSECT
SELECT * FROM StudentInfo WHERE Preference ='Male' OR Preference = 'It doesnt matter'
INTERSECT
SELECT * FROM StudentInfo WHERE LanguageToPractice ='English'
ORDER BY Priority
LIMIT 1;
有誰知道什麼可能導致這個問題? UPDATE查詢中不支持INTERSECT操作?我正在使用SQLite。
Ahhhh,謝謝你,這是有道理的。我會重新寫這個陳述,所以它是一個單獨的WHERE。出於興趣,如果我有多個UPDATE操作,我可以使用INTERSECT嗎? – MikeyJ
編號'INTERSECT','UNION','EXCEPT'等是隻能在集合上工作的數學運算,並且您在SQL中描述集合的方式是通過'SELECT'。嘗試採取非集合的交叉就像試圖乘以句子。 – dmfay