表日志,其中 LogId 字段 PK 。
还有表用户日志,其中包含以下字段:userlogStatus
,userlogIdLog
。
两个表的关系是:Log.LogId = userlog.userlogIdLog
如果有Log
,如何选择表格userlog,
中的行(userlogStatus = 1
除外)?
表达式userlogStatus = 1
表示已阅读Log
的消息。
答案 0 :(得分:1)
尝试以下
SELECT * from LOG
inner join userlog on Log.LogId = userlog.userlogIdLog
where userlogStatus <> 1
答案 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)
上的索引。
答案 2 :(得分:1)
SELECT l.*
FROM Log l
LEFT JOIN userlog Log.LogId = userlog.userlogIdLog
WHERE userlogStatus is null or userlogStatus <> 1