2010-07-25 10 views
0

로그인 한 사용자의 친구와 사용자 자신의 벽 게시물을 표시하는 데 도움이 필요합니다. : P
모든 코딩 포럼을 검색했으며 구글은 내가 찾던 해답 찾을 수 없습니다 : 로그인 한 사용자에 대한/PHP 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 
:

$_SESSION['userid'] 

이것은 내가 지금까지 가지고있는 MySQL의 쿼리입니다

쿼리는 바로 친구의 상태 업데이트를 출력하지만 로그인 한 사용자에 올 때, 상태 업데이트는 중복 얻을, 여기에 예는 다음과 같습니다 http://i30.tinypic.com/29bkqaw.png

status_updates에서 두 항목에 대해 하나있다 테스트 브루 넷Endre Hovde 하나는 ..

나는 그런데 Endre Hovde로 로그인하고 있습니다.


내가 얻을 수있는 모든 도움을 감사 할 것, 가장 좋은 답변을 credz) 미리
감사합니다! :)

// Endre Hovde RCON @^

답변

1

무엇 : friends_with에서

$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"; 
+0

드롭은 "S", 그것은 완벽하게 작동합니다! : D 대단히 감사합니다;) Credz! – NoobiCake

+0

차가움 .. 내가 도울 수있어서 기뻐. 나는 SQL을 좋아한다. – Fosco

0

난 당신이 사용자가있는 모든 친구 같은 대답에 대한 중복을 얻을 것이다 생각합니다. 요청을 여러 부분으로 나눠야하거나 PHP로 그룹화하기 위해 고유 한 ID (가급적이면 주석 ID)를 사용해야합니다. 이는 배열을 사용하고 해당 배열의 키로 주석 ID를 사용하여 쉽게 얻을 수 있습니다. 이것에 대해