我有这些表:
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/