2013-03-25 113 views
0

我有一個用戶表像如下:MySQL查詢返回的我不想要的結果

 id      some attribute 
1196670907478919031,fb39f78853bfe42279a8f56bc5671eb9,..... 
4915018864030990478,44ecf841a778525b925023321761e458, ........ 
3161434036923224050,2fd54178a92a4b1a83643d9faa1fec9e,...... 

現在我有我的friendedges表如下

 a       b    status 
'4915018864030990478', '3161434036923224050', 'accepted' 
'4915018864030990478', '1196670907478919031', 'accepted' 

要獲得用戶的所有朋友的ID = 4915018864030990478我寫了以下查詢,但我得到以下結果 查詢

select id, firstName, lastName, gender, pictureSet FROM Member m JOIN friendedges f ON f.a = m.id where a = "4915018864030990478"; 

結果

'4915018864030990478', 'sdsds', 'dsd', 'M', '1' 
'4915018864030990478', 'sdsds', 'dsd', 'M', '1' 

我在哪裏必須得到好友ID。我不知道爲什麼它會產生重複的結果。

回答

0

你想要的是這樣的:

select f.id, f.firstName, f.lastName, f.gender, f.pictureSet 
FROM Member m 
JOIN friendedges e ON e.a = m.id 
JOIN Member f ON e.b = f.id 
where e.a = "4915018864030990478"; 

或者更簡單(如果你不需要從你的數據成員):

select id, firstName, lastName, gender, pictureSet 
FROM Member m JOIN friendedges f ON f.b = m.id 
where a = "4915018864030990478"; 

在第二個查詢,我只是改變f.af.b

+0

以及ID,名字。姓氏......屬於會員表並且不屬於表格 –

+0

@SaurabhKumar好的我認爲我明白了你的目標。請參閱編輯。 –

+0

這是不可能的一個加入 –

1

使用DISTINCT刪除重複:

select DISTINCT f.b, firstName, lastName, gender, pictureSet 
FROM Member m 
JOIN friendedges f ON f.a = m.id 
where f.a = "4915018864030990478"; 
+0

好獨特不是一個問題。問題是我不gettting朋友..我再次得到用戶 –

+0

@SaurabhKumar - 'SELECT f.b'而不是'id'看到我的編輯。 –