ID匹配的MySQL查询或另一个表中有引用

时间:2019-06-18 17:03:37

标签: php mysql

我正在尝试创建一个论坛,只有创建者可以访问该主题。然后,他们可以在论坛上与其他用户共享访问权限。目标是构造一个查询,该查询将提取与您共享或拥有的所有线程。我的数据库中有三个表

  • 用户(包含所有用户的列表)
  • 线程(包含所有线程)
  • Shared_Threads(包含与线程相关的用户ID列表)

我尝试使用INNER JOIN。

此查询仅提取您拥有的测试

SELECT 
    `id`, 
    `content`,
    `users`.`username` as `owner`
FROM
    `threads`
INNER JOIN
    `users`
ON
    `users`.`.id` = `threads`.`owner_id`
WHERE
    `threads`.`owner_id` = ?
ORDER BY
    `threads`.`id`

我似乎无法联接另一个表进行查询。我需要将WHERE扩展为

OR ? is in `shared_threads`

1 个答案:

答案 0 :(得分:0)

可能您需要在这里左加入。 试试这个查询

select t.id, t.content, u.username as owner 
from threads t 
left join shared_threads st on st.thread_id = t.id
inner join users u on u.id = t.owner_id
where t.owner_id = 2 or st.user_id = 2