2011-03-20 86 views
0

我正在使用mysql數據庫。 我有2張桌子。 我正在構建一個用戶建議列表,它從2個表中選擇用戶列表。 第一個table (users)有用戶信息。 第二個table (followers)包含後續列表。 我需要選擇建議mysql加入查詢幫助

我的查詢是像

SELECT a.*, b.userid, b.friendid, a.userid 
FROM users a,followers b 
WHERE a.userid != '$uid' 
AND (b.friendid != a.userid AND b.userid != '$uid') 

但這查詢返回的所有數據,包括已經按照用戶也。

請幫幫我。 在此先感謝。

+0

決不查詢*它是壞的風格。 – 2011-03-20 08:16:31

回答

0

您沒有加入這兩個表格,所以您將獲得不被WHERE子句排除的所有內容。

你的問題是有點不清楚,但我懷疑你正在尋找:

SELECT a.*, b.userid, b.friendid, a.userid 
FROM users a,followers b 
WHERE a.userid != '$uid' 
AND b.userid = a.userid 
AND b.friendid != a.userid 
+0

我試圖從尚未遵循的表中獲得獨特的建議。但我從兩個查詢中獲得重複 – Raj 2011-03-20 07:40:27

0

嘗試

select * from users 
where userid != '$uid' and 
userid not in (select friendid from followers where userid='$uid') 
+0

嘗試在具有任意數量的行的表上嘗試。當它結束時給我打電話;)當你使用'IN'時,你可以爲主查詢中的每一行創建一個線性搜索。 – 2011-03-20 07:39:57

+0

它的工作原理。非常感謝! – Raj 2011-03-20 07:46:03

+0

@brian:在MySQL 5.1上修復它。 – Zimbabao 2011-03-20 08:13:27