sql >> Base de Datos >  >> RDS >> Mysql

MySQL:seleccione varias filas que contengan valores de una columna

Lo que tienes es una tabla de propiedades. Cuando desee probar varias propiedades a la vez, debe unir la tabla a sí misma:

SELECT c0.car_id
FROM table_cars AS c0
JOIN table_cars AS c1 ON c1.car_id=c0.car_id
JOIN table_cars AS c2 ON c2.car_id=c1.car_id
WHERE c0.name='MAKE' AND c0.value='FORD'
AND c1.name='COLOR' AND c1.value='SILVER'
AND c2.name='TOPSPEED' AND c2.value='200KM/H'

Tener el sustituto id presente en una tabla de propiedades es cuestionable. No parece estar haciendo nada; cada propiedad no es una entidad propia. A menos que el id es requerido por algún otro elemento, me desharía de él y haría car_id, name la clave principal (una clave principal compuesta).