2014-10-22 85 views
0

還有表日誌其中字段LogIdPK。 也有userlog帶有一個字段:userlogStatususerlogIdLog如何從表中選擇數據排除第二個表Mysql的數據?

在兩個表的關係是:Log.LogId = userlog.userlogIdLog

如何選擇行從表Log排除行從userlog,如果有userlogStatus = 1? 表達式userlogStatus = 1意味着讀取了來自Log的消息。

回答

1

請嘗試以下

SELECT * from LOG 
inner join userlog on Log.LogId = userlog.userlogIdLog 
where userlogStatus <> 1 
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)的索引。

1
SELECT l.* 
FROM Log l 
LEFT JOIN userlog Log.LogId = userlog.userlogIdLog 
WHERE userlogStatus is null or userlogStatus <> 1 
相關問題