有一名學生。這位學生正在上課。我想要的是列出該學生未注冊的課程。我的SQL查詢是這樣的,我哪里出錯了?
SELECT * FROM class, userClass WHERE class.id <> userClass.class AND userClass.user<>$userid
uj5u.com熱心網友回復:
我不得不假設你的表結構,我希望我做對了。經典的方法是使用 LEFT JOIN 和 IS NULL:
select
c.*
from
class c left join userClass uC on c.id = uC.class and uC.user = $userid
where
uC.class is null
或使用 NOT IN
select
*
from
class
where
id not in (select class from userClass where user = $userid)
順便說一句:您應該閱讀一些有關資料庫命名約定的資訊 - 例如使用表的復數名稱 ( classes, userClasses) 和正確識別鍵 - 如果表classes有 an那么您應該在相關表中通過等id參考它。classId
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/494077.html
上一篇:MySQL中的單詞解擾器
下一篇:模式驗證:列中遇到錯誤的列型別
