Возможно выполнить эквивалент ЛЕВОГО СОЕДИНЕНИЯ с подвыбором, где несколько столбцов требуются. Вот то, что я имею в виду.
SELECT m.*, (SELECT * FROM model WHERE id = m.id LIMIT 1) AS models FROM make m
Как есть теперь выполнение этого дает мне, 'Операнд должен содержать 1 столбец (столбец)' ошибка.
Да я знаю, что это возможно с ЛЕВЫМ СОЕДИНЕНИЕМ, но мне сказали, что это было возможно с подвыбором, мне любопытно относительно того, как это сделано.
Из подзапроса может быть возвращен только один столбец, поэтому вам понадобится один подзапрос для каждого столбца, который вы хотите вернуть из таблицы модели.
Есть много практических применений для того, что вы предлагаете.
Этот гипотетический запрос вернет последнюю дату выпуска
(надуманный пример) для любой марки с хотя бы одной датой выпуска
, и null для любой марки без даты выпуска
:
SELECT m.make_name,
sub.max_release_date
FROM make m
LEFT JOIN
(SELECT id,
max(release_date) as max_release_date
FROM make
GROUP BY 1) sub
ON sub.id = m.id