MySql объединяет агрегатные объекты - PullRequest
0 голосов
/ 08 сентября 2011

Я пишу онлайн-чат, и у меня есть два объекта: чат и пользователь чата. 1 чат может содержать много пользователей чата.

SELECT Chatrooms.created_dt, 
Chatrooms.description, 
ChatUser.first_name, 
ChatUser.last_name, 
ChatUser.email 
FROM Chatrooms
LEFT JOIN ChatUser
ON ChatUser.room_id = Chatrooms.id
WHERE Chatroom.status = 1

это даст мне строки вроде


2011-09-08 , I need serious help , daffy, duck, daffy@loony.com  
2011-09-08 , I need serious help , donald, duck, donjuan@disney.com  
2011-09-08 , I need serious help , darkwing, duck, darkcape@aol.com

Очевидно, я бы хотел избежать дублирования информации чата в каждой строке. Однако я также хотел бы избежать запуска нескольких запросов. У меня есть только базовый опыт работы с dbs, и, поскольку у mysql нет внешних ключей (я не уверен, как это могло бы помочь мне), я не уверен, какие есть лучшие варианты.

Есть ли что-то лучшее, что я могу сделать в этой ситуации, или просто не беспокоиться о дублирующих столбцах?

1 Ответ

0 голосов
/ 08 сентября 2011

Насколько я знаю, я не верю, что есть способ выбрать информацию, которую вы пытаетесь получить, без выполнения двух запросов или дублирования некоторой информации.

Я имею в видуПо сути, вы просите базу данных получить информацию о чате и пользователях чата в одном запросе ... и если вы не можете найти способ записать это на листе бумаги, используя те же столбцы и данныетипы для каждой строки, это, вероятно, невозможно.

Таким образом, сказав это, вы, вероятно, можете просто игнорировать дублирующиеся данные в каждой строке, чтобы достичь своей цели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...