簡體   English   中英

PHP MySQL查詢問題/幫助-聯接表

[英]PHP MySQL Query Question / Help - Joining tables

我需要幫助顯示登錄用戶的朋友和用戶本人的留言牆..:P
我在每個編碼論壇上搜索過,谷歌沒有找到我想要的答案:/

登錄用戶的會話是:

$_SESSION['userid']

這是我到目前為止的MySQL查詢:

SELECT DISTINCT * FROM status_updates JOIN friends ON status_updates.member_id = friends.friend_with LEFT JOIN members ON status_updates.member_id = members.member_id ORDER BY status_id DESC LIMIT 0,10

該查詢從朋友的右邊輸出狀態更新,但是當涉及到登錄用戶時,狀態更新將被復制,如下所示: http : //i30.tinypic.com/29bkqaw.png

status_updates中只有兩個條目,一個用於Test Bruker 4 ,一個用於Endre Hovde ..

順便說一句,我以Endre Hovde的身份登錄。


我會很感激我能提供的任何幫助,credz提供最佳答案;)
提前致謝! :)

// Endre Hovde @ rCon ^

那這個呢:

$query = "select su.* 
          from status_updates su 
          where 
               su.member_id in (
                  select " . $_SESSION['user_id'] . " as member_id
                  UNION 
                  select fr.member_id 
                  from friends fr
                  where exists (select 1 from friends
                                where member_id = fr.member_id
                                and friend_with = " . $_SESSION['user_id'] . ")

               )
          order by su.status_id desc limit 0,10";

我認為您將為用戶擁有的每個朋友獲得相同答案的重復副本。 您必須將請求分成幾個部分,或者使用唯一的ID(最好是注釋ID)將其與PHP分組。 使用數組並使用注釋ID作為該數組的鍵可以輕松實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM