Tengo dos tablas, una mesa con columnas vehicle
:¿Cómo obtengo un recuento de filas asociadas en una combinación a la izquierda en MySQL?
id
stock
year
make
model
y un images
tabla con columnas:
id
vehicle_id
name
caption
default tinyint(1)
Estoy tratando de enumerar su imagen por defecto la información del vehículo, y un total recuento de imágenes que tiene el vehículo. Actualmente estoy usando el SELECT
declaración siguiente:
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
que inicialmente estaba usando:
ON vehicle.id = images.vehicle_id AND images.default = 1
pero luego las imágenes cuentan sólo sería 1 o 0 dependiendo de si había una imagen por defecto en la base de datos. He intentado usar UNION
y otras declaraciones SELECT
, pero todavía no puedo obtener un resultado correcto. ¿Debo utilizar dos declaraciones SELECT
o hay otra forma de manejarlo con JOIN
o UNION
?
estoy de acuerdo. Esta sería la forma correcta de hacer esto. Puedo pensar en otra forma (que implica el uso de una subconsulta en lugar de la tabla de imágenes rectas), pero es hacky y horrible (y solo por diversión). Esta es la forma correcta de hacer esto. – MBCook
+1 para esto. Lo limpié solo un poco para deshacerme del scroll – TheTXI
¿Es mejor usar COUNT (id) en lugar de COUNT (*) para no seleccionar todas las columnas? –