2012-01-18 46 views
0

我有以下MYSQLMYSQL連接3臺

SELECT T2.name as username, T2.id as userid, 
     T2.lastactivity as lastactivity, T2.photo as avatar 
FROM exchange AS T2 
    INNER JOIN 
    (SELECT (CASE WHEN `buddy`.`penpalA` = 887 
        THEN `buddy`.`penpalB` 
        ELSE `buddy`.`penpalA` 
       END) AS 'friend' 
     FROM `buddy` 
     WHERE status = 1 AND `penpalA` = 887 
     OR `penpalB` = 887 
    ) AS _Temp 
    ON _Temp.friend = T2.`id` 

如何添加另一個表給它爲了得到其他的細節,其中__Temp.friend現在T3.userid是共同點

+1

恭喜你?這有什麼問題嗎? – 2012-01-18 21:36:32

+0

@JakeStainer所以你的問題是什麼? – Karlson 2012-01-18 21:36:44

+0

我如何添加另一個表到連接,並從另一個表中的用戶標識符鏈接到它的細節 – Jake 2012-01-18 21:38:14

回答

1

試試這個:

SELECT T2.name as username, T2.id as userid, 
      T2.lastactivity as lastactivity, T2.photo as avatar,T3.* 
    FROM exchange AS T2 
     INNER JOIN 
     (SELECT (CASE WHEN `buddy`.`penpalA` = 887 
         THEN `buddy`.`penpalB` 
         ELSE `buddy`.`penpalA` 
        END) AS 'friend' 
      FROM `buddy` 
      WHERE status = 1 AND `penpalA` = 887 
      OR `penpalB` = 887 
     ) AS _Temp 
     ON _Temp.friend = T2.`id` 
    LEFT JOIN details T3 ON _Temp.friend=T3.UserId 
+0

嗨,即時通訊只獲取結果,其中用戶標識實際存在於T3中,我需要它,以便如果T3中什麼都沒有,那麼它只是顯示空白 – Jake 2012-01-18 21:51:52

+0

我將最後的JOIN更改爲左連接,應該做你想要的... – Sparky 2012-01-18 21:59:47