이것은 SQL 질문이며 어떤 유형의 JOIN, GROUP BY 등을 사용할지는 알지 못합니다. 메시지는 객실과 매일 객실과 관련이있는 채팅 프로그램 용입니다 내역을 출력 할 때 기본적으로 해당 내역에서 채팅 한 사용자를 표시해야합니다. 순간 나는과 같이 메시지를 통해 연결 : 나는 한 성적 증명서 항목을 나타내는 배열의 각 요소와 대한 생각 싶습니다SQL 그룹 결과 열 배열
Array
(
[0] => Array
(
[id] => 2
[name] => Room 2
[niceDate] => Wednesday, April 14
[date] => 2010-04-14
[long] => Jerry Seinfeld
)
[1] => Array
(
[id] => 1
[name] => Room 1
[niceDate] => Wednesday, April 14
[date] => 2010-04-14
[long] => Jerry Seinfeld
)
[2] => Array
(
[id] => 1
[name] => Room 1
[niceDate] => Wednesday, April 14
[date] => 2010-04-14
[long] => Test Users
)
)
:
SELECT rooms.id, rooms.name, niceDate, room_transcripts.date, long
FROM room_transcripts
JOIN rooms ON room_transcripts.room=rooms.id
JOIN transcript_users ON transcript_users.room=rooms.id AND transcript_users.date=room_transcripts.date
JOIN users ON transcript_users.user=users.id
WHERE room_transcripts.deleted=0 AND rooms.id IN (1,2)
ORDER BY room_transcripts.id DESC, long ASC
결과 집합은 다음과 같습니다 사용자는 배열에서 항목의 요소로 그룹화됩니다. 'long'은 모든 이름을 나열하는 배열입니다. 이 작업을 수행 할 수 있습니까?
지금은 이름을 추가하고 사본 날짜와 방이 바뀌면 소급하여 회신하지만 나는 파일과 강조 표시된 메시지에 대해 동일한 작업을 수행하며 지저분합니다.
감사합니다.
관계형 모델의 구조로 인해이 작업은 PHP에서 사후 쿼리로 처리하는 것이 가장 좋습니다. – outis