我有两个表:用户和user_depts。假设(对于这个问题),用户只有'id'列,user_depts有2:'uid'和'did'。mysql:两个表,但三个选择标准
我正在寻找一个SQL行,它将返回给定用户ID(假设为7,尽管这将从PHP动态发布)的所有部门的所有用户ID都是关联的。
我已经试过是:
当然但这只是返回7.我想我可能要参加表本身,但我只知道的快捷语法的加盟,似乎还不够。任何指针将不胜感激!
我有两个表:用户和user_depts。假设(对于这个问题),用户只有'id'列,user_depts有2:'uid'和'did'。mysql:两个表,但三个选择标准
我正在寻找一个SQL行,它将返回给定用户ID(假设为7,尽管这将从PHP动态发布)的所有部门的所有用户ID都是关联的。
我已经试过是:
当然但这只是返回7.我想我可能要参加表本身,但我只知道的快捷语法的加盟,似乎还不够。任何指针将不胜感激!
使用EXISTS
:
SELECT uid FROM user_depts
WHERE EXISTS (
SELECT * FROM user_depts a
WHERE uid = 7 AND a.did = user_depts.did
)
我正在寻找一个SQL一行将返回所有用户ID的所有 部门与给定用户ID(假设7,虽然 这个会从PHP中动态获得)相关联。
如果这意味着要找到所有与该用户ID的用户:7具有连接到它的这个user_departent是您查询:
select users.id from users
inner join user_depts.uid = users.id
where users.id = 7
从那里在做 user_depts选择UID(选择从user_depts确实其中uid = 7)
这是您可以做到的最好方法。 ,如果你想删除重复的结果,那么你可以使用不同的
我认为这将工作,但我也认为它会比不相关的子查询慢,检查我的答案... – 2012-02-03 16:42:02
下巴快速和完美工作回应。谢谢! – yycroman 2012-02-03 16:43:46