gpt4 book ai didi

mysql - 将连接限制为完整集而不是子集

转载 作者:行者123 更新时间:2023-11-29 21:49:32 25 4
gpt4 key购买 nike

我正在尝试获取仅对某些用户可见的帖子的 ID 列表。我目前的声明是这样的:

SELECT `p`.`id` 
FROM `posts` AS `p`
INNER JOIN `post_visibilities` AS `pv`
ON `pv`.`post_id` = `p`.`id`
WHERE `pv`.`user_id` IN ( 1, 2, 3, 4 );

这有点有效,但是 IN() 子句的作用有点像子集,并且我收到返回的帖子,这四个用户其他用户可以看到这些帖子用户。我需要查找这四个用户可见的帖子。

最佳答案

您可以直接翻译它并在那里使用不存在。尽管我不得不说不存在(因此子查询)总是有点慢。不确定是否有更快的方法。

SELECT DISTINCT `p`.`id` 
FROM `posts` AS `p`
INNER JOIN `post_visibilities` AS `pv`
ON `pv`.`post_id` = `p`.`id`
WHERE `pv`.`user_id` IN ( 1, 2, 3, 4 )
and not exists (select 1 from `post_visibilities` as 'excluder'
where excluder.post_id = p.id and excluder.user_id not in (1,2,3,4));

关于mysql - 将连接限制为完整集而不是子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33782572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com