2014-02-10 78 views
0

我遇到下面的表格:MySQL查詢 - 有點棘手

USERS:        ITEMS 

user_id name always_show   id user_id name 
--------------------------   -------------------------------- 
1  Joe       1 1  Apple 
2  Sam       2 1  Banana 
3  Walter 1     3 2  Cherry 

我做這個查詢:

SELECT * FROM 
    users Inner Join 
    items On users.user_id = items.user_id 

的問題是:我怎樣才能添加其他用戶,其有標誌always_show設置?

+0

什麼是表之間的關係? 1:1? 1:N? N:1? N:M?你正在使用內部連接,所以我認爲它是1:1的關係? – Tularis

回答

1

我希望我明白你的問題:-)嘗試UNION

SELECT u.* FROM users u 
INNER JOIN items i ON u.user_id = i.user_id 

UNION ALL SELECT * FROM users WHERE always_show = 1 
+0

抱歉,但給我一個錯誤.. – Fuxi

+0

@Fuxi我忘記了工會的選擇...再試一次! – silly

+0

謝謝!作品像一個魅力:) – Fuxi

0
SELECT * 
FROM users 
INNER JOIN items On users.user_id = items.user_id 
UNION 
SELECT * 
FROM users 
LEFT OUTER JOIN items On users.user_id = items.user_id AND users.always_show = 1 
+0

這似乎幾乎是正確的,但我得到重複記錄: 喬,喬,山姆,喬,山姆,瓦爾特 – Fuxi

+0

我的壞..有一個'所有'在那裏是不需要的。答案已更新。 – StevieG

0
SELECT * FROM 
    users Inner Join 
    items On users.user_id = items.user_id where Users.always_set = 1 
+0

返回0條記錄:/ – Fuxi