我有这些表:

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/

10-12 03:16