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