2011-01-25 90 views
1

如果我在查詢,查找連接兩個表:加入表查詢

SELECT m1.id AS reg, m1.name AS name, f.registered AS status 
FROM phone f 
INNER JOIN members m1 ON m1.id=f.user_id 
WHERE m1.status='1' AND f.registered='1' 

然後我要添加其他10個用戶ID的像m1.id IN (014,01284,014829,075090)一個數組,也應在一個查詢結果列於。我想避免查詢中的第三個表,因爲我已經知道我需要的表中的用戶。

問題是,最終結果包含用戶通過電話表和數組中列出的ID從成員表中獲得的所有細節。

這樣做的最好方法是什麼?

+0

你已經選擇m1.id,是不是你想要的? – jishi 2011-01-25 12:37:08

回答

1

似乎有點瑣碎,所以也許不是你所需要的,但是像這樣?

SELECT m1.id AS reg, m1.name AS name, f.registered AS status 
FROM phone f 
INNER JOIN members m1 ON m1.id=f.user_id 
WHERE 
(m1.status='1' AND f.registered='1') 
OR 
(m1.id IN (014,01284,014829,075090)) 
0

的INNER JOIN限制所有的結果那些在連接表的匹配,但聽起來並不像你想

什麼,我想,如果你改變INNER JOIN到Nanne的答案將工作LEFT JOIN

SELECT m1.id AS reg, m1.name AS name, f.registered AS status 
FROM phone f 
LEFT JOIN members m1 ON m1.id=f.user_id 
WHERE 
(m1.status='1' AND f.registered='1') 
OR 
(m1.id IN (014,01284,014829,075090))