我有兩個表:用戶和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