MySQL запрос из двух таблиц с условием

385
05 декабря 2017, 18:47

Приветствую, собственно вопрос, как реализовать запрос на выборку из двух таблиц с таким условием:

Есть таблица

customers {id, name, address}

1 Вася Адрес1
2 Петя Адрес2

И таблица

comments {id, cust_id, comment, date}
1 1 Молодец Дата
2 2 Хороший Дата
3 1 Норм    Дата
4 2 Сойдет  Дата
5 1 Ок      Дата

И необходимо выбрать всех покупателей плюс к каждому покупателю последний комментарий. Вот так надо

1 Вася Ок
2 Петя Сойдет

Пробовал пойти таким путем

SELECT U.*, S.comment
FROM customers AS U 
LEFT JOIN comments AS S 
  ON S.cust_id = U.id 
AND (
SELECT max(S2.id) 
  FROM comments AS S2
) GROUP BY U.id ORDER BY S.comment DESC

В результате имею строки с первыми комментариями...

1 Вася Молодец
2 Петя Хороший

Прошу помочь советом/примером, спасибо

Answer 1

Вероятно, решение данной задачи может выглядеть следующим образом.

SELECT customers.id, customers.name, comments.comment
FROM customers
  JOIN comments
    ON comments.cust_id = customers.id
WHERE comments.id = (
  SELECT max(comments.id)
  FROM comments
  WHERE comments.cust_id = customers.id
)
READ ALSO
Ошибка размера БД на Denwer

Ошибка размера БД на Denwer

Всем привет!) У меня такая вот проблемкаСтавлю на Denwer Базу данных на WordPress

260
Можно ли бэкапить MySQL, тупо копируя каталог с БД?

Можно ли бэкапить MySQL, тупо копируя каталог с БД?

Ситуация такова: есть мастер-сервер MySQL (ну или MariaDB, если быть точным), есть репликаКаждую ночь mysqld с репликой отключается на время, и папочка...

300
Динамическое имя таблицы в триггере

Динамическое имя таблицы в триггере

Есть триггер, который копирует столбцы из одной таблицы в другуюКак присвоить имя таблицы динамической переменной @nametable? Каждый день имя...

295
Формат времени в MySql

Формат времени в MySql

Мне нужно получить формат времени так:

246