繁体   English   中英

通过相关记录选择?

[英]SELECT by related records?

我需要通过相关记录的精确数组来查找SQL中的记录。 这是我的示例架构:

帖子表

==========
posts
==========
id | text
----------
1  | Hello
----------
2  | Hello
----------
3  | Hello

用户表

==========
users
==========
id | name
----------
1  | Vova
----------
2  | Ilya
----------
3  | Ivan
----------
3  | Peter

连接表

==========
userposts
==========
UserID | PostID
---------------
1      | 1
---------------
2      | 1
---------------
3      | 1
---------------
1      | 2
---------------
2      | 2
---------------

如何通过用户ID = [1,2]的数组查找ID = 2的帖子?

UPD。 我不知道帖子ID,我需要找到它。 2只是我想要得到的一个例子。 我需要通过联结表找到与关联对象的确切集合相关的帖子。

尝试像这样使用smth,但不确定这是否是最佳方法

select p.id from posts as p
inner join userpost as up on up.post_id = p.id
inner join users as u on up.user_id = u.id
where u.id in $(user_array);

谢谢

我认为以下代码可以完成您想要的工作:

Select 
  posts.id
  posts.text
From 
  posts
Where 
  posts.id in (select PostID from userposts where UserID in (1,2))

这将返回用户1或2添加的每个帖子。您可以将这些值更改为array或其他选择。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM