我有这些表:
home_table
----------
home_id | home_name
user_table
---------
user_id | user_name
user_home_rel_table
----------
id | user_id | home_id
(很多用户可能属于很多家)
我有一个名为/homes/2/users 的 API 调用,我想返回 ID 为 2 的所有家庭用户。
与调用一起,是当前用户的用户 ID。
如果用户属于家庭(在本例中为 id 2),则允许他查看其他用户。如果用户存在于 user_home_rel_table 中,则该用户属于该家庭:
user_home_rel_table
----------
id | user_id | home_id
----------------------
1 | $currentID | 2
最佳答案
我相信这会给你想要的东西。我将 $currentid
和 $home_id
作为参数的占位符。我还为表使用了略有不同的名称,因为我拒绝使用在末尾附加 _table
的表名...;)
SELECT
U.user_id,
U.user_name
FROM
User_Homes UH
INNER JOIN User_Homes UH2 ON UH2.home_id = UH.home_id
INNER JOIN Users U ON U.user_id = UH2.user_id
WHERE
UH.user_id = $currentid AND
UH.home_id = $home_id -- 2
关于mysql - 有没有办法用一个查询来做到这一点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35610896/