read_log (阅读记录)

contract_id:合同id

user_id:阅读会员

contract (合同表)

id:合同id

获取未读的合同列表

SELECT c.id
FROM contract c
LEFT JOIN read_log rl ON c.id = rl.contract_id
WHERE rl.contract_id IS NULL;

解释:
contract 表: 包含所有合同的记录。
read_log 表: 包含用户已经阅读过的合同记录。
LEFT JOIN: 保留 contract 表中的所有记录,即使在 read_log 中没有对应的记录。
WHERE rl.contract_id IS NULL: 只返回那些在 read_log 中没有出现的合同 ID,也就是未被阅读的合同。

如果有特定的用户阅读记录(例如按用户过滤),你可以加上用户的条件:

SELECT c.id
FROM contract c
LEFT JOIN read_log rl ON c.id = rl.contract_id AND rl.user_id = [USER_ID]
WHERE rl.contract_id IS NULL;

作者 admin

百度广告效果展示