Saya menjalankan dua kueri, satu untuk menemukan kecocokan dalam database, dan kueri kedua yang kemudian memperbarui kolom dalam database. Kuerinya persis sama, kecuali yang satu adalah pernyataan SELECT dan yang lainnya adalah pernyataan UPDATE. Sintaks dalam klausa WHERE sama persis di kedua kueri, dan pernyataan SELECT menemukan semua hasil yang benar tanpa masalah atau kesalahan sintaksis. Kueri kedua memberikan kesalahan ini:
KESALAHAN: dekat "INTERSECT": kesalahan sintaksis
:
Ini adalah kueri 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;
Ini adalah permintaan 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;
Adakah yang tahu apa yang menyebabkan masalah ini? Apakah operasi INTERSECT tidak didukung dalam kueri UPDATE? Saya menggunakan SQLite.