還有表日誌其中字段LogId是PK。 也有userlog帶有一個字段:userlogStatus
,userlogIdLog
。如何從表中選擇數據排除第二個表Mysql的數據?
在兩個表的關係是:Log.LogId = userlog.userlogIdLog
如何選擇行從表Log
排除行從userlog,
如果有userlogStatus = 1
? 表達式userlogStatus = 1
意味着讀取了來自Log
的消息。
還有表日誌其中字段LogId是PK。 也有userlog帶有一個字段:userlogStatus
,userlogIdLog
。如何從表中選擇數據排除第二個表Mysql的數據?
在兩個表的關係是:Log.LogId = userlog.userlogIdLog
如何選擇行從表Log
排除行從userlog,
如果有userlogStatus = 1
? 表達式userlogStatus = 1
意味着讀取了來自Log
的消息。
請嘗試以下
SELECT * from LOG
inner join userlog on Log.LogId = userlog.userlogIdLog
where userlogStatus <> 1
您可以使用not exists
:
select l.*
from log l
where not exists (select 1 from userlog ul where l.LogId = ul.userlogIdLog and userLogStatus = 1);
爲了獲得最佳性能,你會想在userlog(userlogIdLog, userLogStatus)
的索引。
SELECT l.*
FROM Log l
LEFT JOIN userlog Log.LogId = userlog.userlogIdLog
WHERE userlogStatus is null or userlogStatus <> 1