我有两个表:users和user_depts。让我们说(对于这个问题)用户只有一个'id'列,而user_depts有2:'uid'和'did'。
我正在寻找一条SQL行,它将返回所有部门的所有用户ID,这些部门使用给定的用户ID(比如7,虽然这将来自PHP动态)与之关联。
我尝试的是:
SELECT id FROM users, user_depts
WHERE users.id = user_depts.uid
AND user_depts.uid = 7
但当然这只会返回7.我想我可能必须加入表格,但我只知道加入的快捷语法,而且似乎不够。任何指针都将非常感谢!
答案 0 :(得分:1)
使用EXISTS
:
SELECT uid FROM user_depts
WHERE EXISTS (
SELECT * FROM user_depts a
WHERE uid = 7 AND a.did = user_depts.did
)
答案 1 :(得分:0)
我正在寻找一条SQL行,它将返回所有用户ID 与给定用户ID相关的部门(比方说,7) 这将来自PHP的动态关联。
如果这意味着您要查找具有userid的所有用户:7已连接user_departent,则这是您的查询:
select users.id from users
inner join user_depts.uid = users.id
where users.id = 7
答案 2 :(得分:0)
从user_depts中选择uid in(从user_depts中选择uid = 7)
这是你能做到的最好方法。 如果你想删除重复的结果,那么你可以使用不同的