我有兩個表用戶和項目在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.
我有兩個表用戶和項目在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.
試試這個只有一個:
SELECT DISTINCT u.username
FROM users u INNER JOIN items it
ON u.pk = it.user_pk
WHERE it.status > 0
SELECT Users.username FROM Users JOIN Items
ON Users.pk = Items.pk
WHERE Items.status>0
SELECT `Users`.`username`
FROM `Users`, `Items`
WHERE `Items`.`status` > 0
AND `Users`.`pk` = `Item`.`user_pk`;
顯式連接(請參閱其他答案)隱含的更好;) – Marco
OP沒」請問,但可能最好使用DISTINCT來獲得單個用戶:) – Marco
我沒有使用DISTINCT,因爲這樣他可以選擇其他字段並獲取它們,例如,如果他想獲取用戶名和所有項目count> 0 – Marcx