Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 选择不在查询中的数据_Mysql_Sql - Fatal编程技术网

Mysql 选择不在查询中的数据

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

我想选择所有未标记为已被用户阅读的帖子

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 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

这就是我要找的问题,谢谢兄弟。这就是我要找的问题,谢谢兄弟。