메시지, 사용자 및 친구 테이블이 3 개 있습니다. 사용자가 다른 사용자와 친구가되면SQL Join Statement : 사용자의 친구 및 사용자의 메시지를 모두 수집합니다.
Messages: msg_id, uid_fk, message, alert, created, uploads, owner
Users: uid, first_name, last_name
Friends: friend_one, friend_one
, 나는 다음과 같은 방식으로 자신의 UID의 기록 : friend_one를 : 172 friend_two : 58 | friend_one : 58 friend_two : 172 아래 코드는 완벽하게 작동하며 사용자의 모든 메시지 업데이트를 선택합니다. 내 문제는 내가 자신의 메시지뿐만 아니라 자신의 친구들의 메시지도 모두 선택해야한다는 것이다.
아래에서 언급 한 내용은 사용자의 상태 업데이트 만 선택하고 사용자의 상태 업데이트뿐만 아니라 자신의 친구를 선택하는 데 많은 시간을 할애하고 있습니다.
이$friends_sql = $db->prepare("SELECT a.first_name, a.uid, a.last_name FROM users
a, friends b WHERE a.uid = b.friend_two AND b.friend_one = :friend_one ORDER BY
b.friend_id DESC LIMIT 8");
$friends_sql->execute(array(':friend_one' => $uid));
'$ db-> prepare' 호출의 인용 부호 안에 캐리지 리턴을 넣을 수 있습니다. 따라서 마이클 프레드릭슨 (Michael Fredrickson)의 답변에 따라 SQL을 쉽게 읽을 수있는 형식으로 구성 할 수 있습니다.이 대답은 여러분과 여러분의 코드를 본 다른 모든 사람들에게 쉽게 따라 할 수 있습니다. – halfer
오, 그게 실제로 도움이 될 것 같습니다. 팁 고마워. – user1011713