我需要通过精确的相关记录数组在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
---------------
如何通过userIDs = [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);
谢谢
答案 0 :(得分:1)
我认为以下代码可以完成您想要的工作:
Select
posts.id
posts.text
From
posts
Where
posts.id in (select PostID from userposts where UserID in (1,2))
这将返回用户1或2添加的每个帖子。您可以将这些值更改为数组或其他选择。