2012-02-20 56 views
0

好吧,我有這個疑問,我擺弄。哪一個正在工作,但仍然沒有得到我想要的確切結果。失去了與MySQL內部聯接查詢

SELECT DISTINCT b.friendID, b.isactive, c.* 
      FROM memb_baseInfo a INNER JOIN memb_friends b ON 
      a.mID = b.mID 
      INNER JOIN memb_baseInfo c ON 
      b.friendID = c.mID 
      WHERE b.`isactive` = 0 OR b.`isactive` = 1 
      AND a.mID = '21' 

$中旬是動態變量。

我想要做的就是找到在桌子上memb_friends匹配給定的動態$中旬的中期或friendID。從那裏獲取另一張表的信息。 memb_baseInfo。其中mID是各種外鍵。兩個表都有mID作爲匹配變量。但在memb_friends中,friendID和mID基本上與memb_baseInfo表相同。我的虛擬數據基本上是我MID和5假的,其中2個是沒什麼目前與我,和3已與我的友誼。我的問題是,這僅僅是收集信息在我的MID(21)具有friendID但如果有人friended我,還有數是MID的朋友表,然後我不到達的信息。我一直試圖找出如何做到這一點,但沒有成功。希望我有道理,任何能夠幫助的人>?

+1

在第一次看,我可以說,你應該採取'b.'isactive' = 0或b.'isactive' = 1'像'(b.'isactive' = 0或b.'isactive' = 1支架)'。如果沒有幫助,我會進一步觀察 – Kayser 2012-02-20 10:45:49

回答

1

你看21的朋友,對不對?在原來的查詢給出以上(未測試)

SELECT DISTINCT a.* 
    FROM memb_baseInfo a 
WHERE a.mID IN (
    SELECT b.friendID FROM memb_baseInfo a INNER JOIN memb_friends b ON a.mID = b.mID 
    WHERE (b.`isactive` = 0 OR b.`isactive` = 1) 
    AND a.mID = '21') 
0

繼續玩它之後在等待答案,我實際上

SELECT * FROM memb_friends a 
INNER JOIN memb_baseInfo b ON a.friendID = b.mID OR a.mID = b.mID 
WHERE a.isactive = 1 AND b.mID NOT IN(".$mid.") AND (a.mID = '".$mid."' OR a.friendID = '".$mid."') 

來到了這裏$中旬將是21:使用此。這將使我獲得我擁有的所有連接,並從我原來的問題中獲得我目前需要的所有信息。