Вопрос - Ответ по MySQL

Печать RSS
2860


2000 лет д.н.э.
0
Left join используй, выгребай сообщения и джоином их авторов

Оранжевые штаны
0
682. ramzes, с ёинами пробовал, но у меня с ними криворуко пока получается, я их еще не вкурил))

Оранжевые штаны
0
в общем попробовал с LEFT JOIN
$query = 'SELECT `u`.`id`,`u`.`name`,`u`.`family`,`u`.`avatar`,`u`.`online`, `m`.`id_to`,`m`.`id_from` 
FROM `users` `u`
LEFT JOIN `messages` `m` ON 
`m`.`id_from` = `u`.`id` WHERE `m`.`id_to` = '.$id.' 
OR 
`m`.`id_to` = `u`.`id` WHERE `m`.`id_from` = '.$id.'';
ругается На синтакс
syntax to use near 'WHERE `m`.`id_from` = 
где я накосячил?
Изменил: Dmitry Kokorin (06.02.2016 / 12:34)

Оранжевые штаны
0
$query = 'SELECT DISTINCT `u`.`id`, `u`.`name`,`u`.`family`,`u`.`avatar`,`u`.`online` 
FROM `users` `u`
RIGHT JOIN `messages` `m` ON 
`m`.`id_from` = `u`.`id` OR `m`.`id_to` = `u`.`id` 
WHERE 
`m`.`id_to` = '.$id.' AND `m`.`id_from` = `u`.`id` 
OR 
`m`.`id_from` = '.$id.' AND `m`.`id_to` = `u`.`id` 
GROUP BY `u`.`id` ORDER BY `m`.`time` DESC';
Вот так выводит всё, но опять без сортировки, а нужна сортировка по последним сообщениям с группировкой по id юзера

Оранжевые штаны
0
справился без join обычным подзапросом с union all
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск