首页 > 解决方案 > ID匹配或在另一个表中有引用的MySQL查询

问题描述

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

我尝试使用 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`

标签: phpmysql

解决方案


可能你需要在这里离开。试试这个查询

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

推荐阅读