Ответ 1
В подзапросе может быть только один столбец, возвращаемый из него, поэтому вам понадобится один подзабор для каждого столбца, который вы хотите вернуть из таблицы модели.
Можно выполнить эквивалент LEFT JOIN с подзапросом, где требуются несколько столбцов. Вот что я имею в виду.
SELECT m.*, (SELECT * FROM model WHERE id = m.id LIMIT 1) AS models FROM make m
Теперь, когда это делается, я получаю сообщение "Операнд должен содержать 1 столбец".
Да, я знаю, что это возможно с LEFT JOIN, но мне сказали, что это возможно с подзапросом, мне любопытно, как это делается.
В подзапросе может быть только один столбец, возвращаемый из него, поэтому вам понадобится один подзабор для каждого столбца, который вы хотите вернуть из таблицы модели.
Существует много практических применений, которые вы предлагаете.
Этот гипотетический запрос вернет самый последний release_date
(надуманный пример) для любого make с хотя бы одним release_date
и null для любого make без release_date
:
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