2012-07-19 223 views
0

我有一個關係表在我的數據庫有AKA四個值...MySQL的左連接查詢

id, int, primary, auto-incriment 
mem1, int 
mem2, int 
type, enum('a','b') 

我也有有會員ID,用戶名,姓名另一個表,和姓氏

我想單擊一個按鈕並獲得兩個人之間的關係,而不會有重複。 下面是該查詢我到目前爲止...

SELECT 
    myMembers.id AS id, 
    myMembers.username AS username, 
    myMembers.firstname AS firstname, 
    myMembers.lastname AS lastname 
FROM myMembers 
INNER JOIN memberRelations 
    ON memberRelations.mem2=myMembers.id 
WHERE memberRelations.mem1='$id' OR memberRelations.mem2='$id' ORDER BY myMembers.username 
ASC 

這裏的問題是,一些用戶它給了我正確的價值觀,但對別人它給我的個人資料的用戶,而不是其他成員的關係。我懷疑這與查詢的ON部分有關,但如實地說我迷路了!有沒有更好的方法來實現我的目標?或者我可以糾正我的查詢中的某些內容嗎?任何幫助將不勝感激。謝謝!

回答

1

根據你的問題,我想你想它選擇的關係的成員如下:

SELECT 
    R.type, 
    M1.id AS id1, 
    M1.username AS username1, 
    M1.firstname AS firstname1, 
    M1.lastname AS lastname1, 
    M2.id AS id1, 
    M2.username AS username2, 
    M2.firstname AS firstname2, 
    M2.lastname AS lastname2 
FROM memberRelations AS R 
     INNER JOIN myMembers AS M1 ON R.mem1=M1.id 
     INNER JOIN myMembers AS M2 ON R.mem2=M2.id 
WHERE R.mem1='$id' OR R.mem2='$id'