У меня есть две тумбочки, vehicle
таблицы со столбцами:Как получить количество связанных строк в левом соединении в MySQL?
id
stock
year
make
model
и images
таблица со столбцами:
id
vehicle_id
name
caption
default tinyint(1)
Я пытаюсь вывести информацию транспортного средства, его изображение по умолчанию, и в общей сложности количество изображений на транспортном средстве. В настоящее время я использую следующий SELECT
заявления:
SELECT vehicle.id, vehicle.stock, vehicle.year,
vehicle.make, vehicle.model, images.name,
COUNT(images.id)
FROM vehicle
LEFT JOIN images
ON vehicle.id = images.vehicle_id
Первоначально я использовал:
ON vehicle.id = images.vehicle_id AND images.default = 1
но рассчитывать изображения будет только 1 или 0 в зависимости, есть ли по умолчанию изображения в базе данных. Я пробовал использовать UNION
и другие операторы SELECT
, но я все еще не могу получить правильный результат. Нужно ли использовать два оператора SELECT
или есть ли другой способ его обработки с помощью JOIN
или UNION
?
Я согласен. Это был бы правильный способ сделать это. Я могу думать о другом способе (с использованием подзапроса вместо таблицы прямых изображений), но он взломан и отвратителен (и просто для удовольствия). Это правильный способ сделать это. – MBCook
+1 для этого. Я немного очистил его, чтобы избавиться от прокрутки. – TheTXI
Лучше ли использовать COUNT (id) вместо COUNT (*), чтобы я не выбирал все столбцы? –