ฉันมีสองแบบสอบถามที่ทำงานอยู่ แบบสอบถามหนึ่งเพื่อค้นหารายการที่ตรงกันภายในฐานข้อมูล และแบบสอบถามที่สองซึ่งจะอัปเดตคอลัมน์ในฐานข้อมูล ข้อความค้นหาจะเหมือนกันทุกประการ ยกเว้นข้อความหนึ่งเป็นคำสั่ง SELECT และอีกข้อความหนึ่งเป็นคำสั่ง UPDATE ไวยากรณ์ในส่วนคำสั่ง WHERE จะเหมือนกันทุกประการในทั้งสองแบบสอบถาม และคำสั่ง SELECT จะค้นหาผลลัพธ์ที่ถูกต้องทั้งหมดโดยไม่มีปัญหาหรือข้อผิดพลาดทางไวยากรณ์ แบบสอบถามที่สองให้ข้อผิดพลาดนี้:
ข้อผิดพลาด: ใกล้ "INTERSECT": ข้อผิดพลาดทางไวยากรณ์
:
นี่คือแบบสอบถาม 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;
ไม่มีใครรู้ว่าอะไรทำให้เกิดปัญหานี้? การดำเนินการ INTERSECT ไม่รองรับในการสืบค้น UPDATE หรือไม่ ฉันใช้ SQLite