|
|
|
Выбрать коментарии к сообщениям
|
|||
|---|---|---|---|
|
#18+
Привет всем. Прошу помощи. Имееться 2 таблицы: CREATE TABLE IF NOT EXISTS `recognition` ( `id` int(11) NOT NULL AUTO_INCREMENT, `id_host` int(11) NOT NULL COMMENT 'кто', `id_client` int(11) NOT NULL COMMENT 'кому', `message` varchar(120) CHARACTER SET cp1251 NOT NULL, `bonus` varchar(60) CHARACTER SET cp1251 NOT NULL, `bonus_img` varchar(155) CHARACTER SET utf8 NOT NULL, `department` varchar(88) CHARACTER SET utf8 DEFAULT NULL, `likes` int(11) NOT NULL, `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4342 ; CREATE TABLE IF NOT EXISTS `recog_users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `id_recog` int(11) NOT NULL, `id_user` int(11) NOT NULL, `id_from` int(11) NOT NULL COMMENT 'от кого пришло', `points` int(11) NOT NULL COMMENT 'сколько балов', `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=14965 ; Имееться запрос который делает сгрупированную выборку: SELECT r.*, r.date date, u.email, s.name_en name_from, s.sapphoto host_photo, s.function_en from_func, COUNT(rc.comment) comments, rc.likes likes_comment, u.email email_from FROM recog r LEFT JOIN user u ON u.id = r.id_host LEFT JOIN _sap s ON s.sapemail = u.email LEFT JOIN recog_comm rc ON r.id = rc.id_recog WHERE r.department IS NOT NULL GROUP BY r.date ORDER BY r.date DESC Как написать запрос что бы к каждому сгрупированому сообщению что мы выбираем добавлялся массив его коментариев? В данном случае когда я делаю еще один ДЖОИН то добавляеться всего 1 комментарий (Мне нужно что бы все.). Помогите пожалуйста! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2015, 09:55:03 |
|
||
|
Выбрать коментарии к сообщениям
|
|||
|---|---|---|---|
|
#18+
Прошу прощения, перепутал таблицы. Вместо второй таблицы recog_user вот эта: CREATE TABLE IF NOT EXISTS `recog_comments` ( `id` int(11) NOT NULL AUTO_INCREMENT, `id_recog` int(11) NOT NULL, `id_user` int(11) NOT NULL, `comment` varchar(250) CHARACTER SET cp1251 NOT NULL, `likes` int(11) NOT NULL, `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=52 ; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2015, 10:09:03 |
|
||
|
Выбрать коментарии к сообщениям
|
|||
|---|---|---|---|
|
#18+
tegs89когда я делаю еще один ДЖОИН то добавляеться всего 1 комментарий (Мне нужно что бы все.)Во-первых, нужна группировка, чтобы собрать несколько записей в одну. Во-вторых, нужна функция GROUP_CONCAT(), чтобы собрать значения полей разных записей при группировке в одну. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2015, 10:35:09 |
|
||
|
Выбрать коментарии к сообщениям
|
|||
|---|---|---|---|
|
#18+
Тоесть функция GROUP_CONCAT буде целесообразна если у нас к примеру имеються в 1 таблице записи а во 2 таблице коментарии к ним. И нам нужно выбрать все сгрупированные записи и что бы в каждой записи в одном из полей хранились к ним коментарии которые мы туда засунем с помощью GROUP_CONCAT. Я правильно понимаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2015, 10:40:58 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39072612&tid=1832631]: |
0ms |
get settings: |
4ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
39ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 189ms |
| total: | 290ms |

| 0 / 0 |
