2011-11-03 16 views
0

我有兩個表用戶和項目在MySQL數據庫與其他錶行計數> 0選擇entrys

Users 
pk username 
1 John 
2 Adam 
3 Eve 

Items 
pk user_pk status 
1 1   0 
2 1   1 
3 2   0 

我想創建一個選擇返回具有1個或多個項目有狀態的所有用戶> 0。

在上述情況下,我想只返回約翰,因爲他是有一個項目與狀態1.

回答

2

試試這個只有一個:

SELECT DISTINCT u.username 
FROM users u INNER JOIN items it 
    ON u.pk = it.user_pk 
WHERE it.status > 0 
0
SELECT Users.username FROM Users JOIN Items 
ON Users.pk = Items.pk 
WHERE Items.status>0 
+0

OP沒」請問,但可能最好使用DISTINCT來獲得單個用戶:) – Marco

+0

我沒有使用DISTINCT,因爲這樣他可以選擇其他字段並獲取它們,例如,如果他想獲取用戶名和所有項目count> 0 – Marcx

0
SELECT `Users`.`username` 
    FROM `Users`, `Items` 
    WHERE `Items`.`status` > 0 
     AND `Users`.`pk` = `Item`.`user_pk`; 
+0

顯式連接(請參閱其他答案)隱含的更好;) – Marco