Mysql 选择不在查询中的数据
我想选择所有未标记为已被用户阅读的帖子 tbl_邮政Mysql 选择不在查询中的数据,mysql,sql,Mysql,Sql,我想选择所有未标记为已被用户阅读的帖子 tbl_邮政 post_id post_message 1 hello world 2 good night 3 good morning 4 incredible 5 cool 待阅读时标记 user_id post_id 3 1 3 4 我想选择此查询中未选择的所有数据 SELECT
post_id post_message
1 hello world
2 good night
3 good morning
4 incredible
5 cool
待阅读时标记
user_id post_id
3 1
3 4
我想选择此查询中未选择的所有数据
SELECT p.post_id,p.post_message FROM tbl_post AS p
LEFT JOIN tbl_mark_as_read AS r
ON r.post_id = p.post_id
AND r.user_id = 3
我希望输出像这样
post_id post_message
2 good night
3 good morning
5 cool
您可以使用not in运算符:
SELECT *
FROM tbl_post
WHERE post_in NOT IN (SELECT post_id FROM tbl_mark_as_read);
如果只想排除用户3已阅读的帖子,可以在内部查询中添加where子句:
SELECT *
FROM tbl_post
WHERE post_in NOT IN (SELECT post_id
FROM tbl_mark_as_read
WHERE user_id = 3);
您可以使用not in运算符:
SELECT *
FROM tbl_post
WHERE post_in NOT IN (SELECT post_id FROM tbl_mark_as_read);
如果只想排除用户3已阅读的帖子,可以在内部查询中添加where子句:
SELECT *
FROM tbl_post
WHERE post_in NOT IN (SELECT post_id
FROM tbl_mark_as_read
WHERE user_id = 3);
试试这个:
SELECT p.post_id,p.post_message FROM tbl_post AS p
LEFT JOIN tbl_mark_as_read AS r
ON r.post_id = p.post_id
AND r.user_id = 3
where r is null
试试这个:
SELECT p.post_id,p.post_message FROM tbl_post AS p
LEFT JOIN tbl_mark_as_read AS r
ON r.post_id = p.post_id
AND r.user_id = 3
where r is null
这就是我要找的问题,谢谢兄弟。这就是我要找的问题,谢谢兄弟。