我有兩張桌子,一張是學生名單,另一張是餐廳名單。人員表格包含PK作爲FK包含在餐館表格中。餐桌包含學生喜歡在餐廳吃飯的日子(以及他們在餐廳吃飯的時間)。我試圖找到週一不喜歡在餐廳用餐的學生。我嘗試使用下面的查詢,但它列出了所有的學生,而不是週一沒有外出的那些學生。MS SQL不喜歡查詢
SELECT DISTINCT SName
FROM Dinner AS D
INNER JOIN Student AS S ON D.SID = S.SID
WHERE DinnerDay NOT LIKE 'Monday'
GROUP BY SName
考慮使用'where not exists'查詢。另外,使用'distinct'和'group by'都是不必要的:都返回唯一的'SName'。如果你正在彙總(sum,avg等),使用'group by',如果你只想返回唯一值,使用'distinct'。 – HoneyBadger
好了,嘗試了以下,但它不喜歡的NOT EXISTS語法:SELECT DISTINCT SNAME FROM晚餐d INNER JOIN學生爲S \t ON D.SID = S.SID WHERE DinnerDay NOT EXISTS '星期一' –
你爲什麼不用'<>'來代替'NOT LIKE'?您的NOT EXISTS語法錯誤。如果您仍想使用'NOT LIKE',請使用'NOT LIKE'Monday%'。 – user6542823