это вопрос SQL, и он не знает, какой тип JOIN, GROUP BY и т. Д. Использовать, он предназначен для программы чата, в которой сообщения связаны с комнатами, а каждый день в комнате связан с расшифровкой и т.
По сути, при выводе моих стенограмм мне нужно показать, какие пользователи общались в этом транскрипте. На данный момент я связываю их через сообщения вроде:
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
Набор результатов выглядит следующим образом:
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
)
)
Хотелось бы, чтобы каждый элемент в массиве представлял одну запись стенограммы и чтобы пользователи были сгруппированы в массив в качестве элемента записи. Таким образом, 'long' будет массивом, в котором перечислены все имена. Можно ли это сделать?
В данный момент я просто добавляю имена, и когда дата и номер стенограммы изменяются, я повторяю их ретроспективно, но я сделаю то же самое для файлов и выделенных сообщений, и это грязно.
Спасибо.