2011-12-01 123 views
1

我有兩個表。如何編寫一個MySQL Join查詢

users: 
     uid | city  | username | flag | 
     10 | New York | john  | 1 | 
     14 | Tokyo | kawasaki | 1 | 
     15 | Tokyo | coder | 1 | 

groupmember: 
     id | uid | groupid | 
     1 | 10 | 16  | 
     2 | 14 | 16  | 
     3 | 15 | 21  | 

這兩個表中的'uid'都是一樣的。

我想選擇所有在城市「東京」的用戶,這些用戶也在groupid爲「16」的組中。

所以查詢resutl應該是(在這種情況下)

14 | Tokyo | kawasaki | 1 | 

回答

3
SELECT u.uid, u.city, u.username, u.flag 
FROM users u 
JOIN groupmember g ON u.uid = g.uid 
WHERE u.city = 'Tokyo' 
    AND g.groupid = 16; 
+1

+1用於以可理解的方式實際格式化您的查詢。 (-1/4表示當你的表名沒有必要或者沒有用時別名) –

2
select u.* from users u join groupmember gm on u.uid = gm.uid 
where u.city='Tokyo' and gm.groupid=16 
+0

確定。得到它了。謝謝。 :) – ptamzz

0
SELECT u.uid, u.city, u.username, u.flag 
FROM users u, groupmember g 
WHERE u.uid = g.uid 
    AND u.city = 'Tokyo' 
    AND g.groupid = 16; 
0
SELECT * FROM 
    users INNER JOIN groupmember 
     ON users.uid = groupmember.uid 
     AND groupmember.groupid = 16 
     AND users.city = 'Tokyo' 
+0

你錯過了'WHERE'子句 – Marcus

+0

你能否再次運行我的查詢?在這裏,我已經與JOIN操作的其他條件進行了對比,謝謝你的時間。 –