| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
G_Z 05.07.2014 14:45
на самом деле мой первый вариант это фактически вариант G_Z, где часть условия вынесена из ON в WHERE. я обычно в ON оставляю только условие объединения таблиц, а фильтрацию выношу в WHERE, т.к. это мне кажется лучше с точки зрения логикиМеня приучили к обратному: всё, что относится к таблице писать в ON.
SELECT
c.car_id,
c.date,
c.car_name,
c.car_modification,
c.price,
c.mileage,
c.color,
ci.img_name
FROM
cars AS c
JOIN (
SELECT
i.car_id,
i.img_name,
MIN(i.img_id)
FROM
images AS i
GROUP BY
i.car_id
) AS ci ON (c.car_id = ci.car_id)
;есть пара оговорок: SELECT
i.car_id,
i.img_name,
MIN(i.img_id)
FROM
images AS i
GROUP BY
i.car_idMySQL не всегда вернёт при такой группировке корректный img_name, если (не в данной задаче) img_id может повторяться — будут ошибки.