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

Error de declaración de Mysql CASE WHEN JOIN

Creo que pretendes:

SELECT *
FROM `pet_info` LEFT JOIN
     `lostpets`
     ON `pet_info`.`id` = `lostpets`.`petid` LEFT JOIN
     `pet_images`
     ON `pet_info`.`id` = `pet_images`.`petid` LEFT JOIN
     `cat_breeds`
     ON `cat_breeds`.`id` = `pet_info`.`pet_breed` AND
        `pet_info`.`pet_cat` = 2 LEFT JOIN
     `dog_breeds`
     ON `dog_breeds`.`id` = `pet_info`.`pet_breed` AND
        `pet_info`.`pet_cat` = 1
WHERE `pet_info`.`pet_user_id` = 581;

Notas:

  • Con una consulta como esta, no debe usar SELECT * , debe elegir explícitamente las columnas que desee. Las diferentes tablas tienen columnas con el mismo nombre.
  • Debe utilizar alias de columna. No los puse en la consulta, pero son una buena idea.
  • En una consulta real, tendría expresiones en el SELECT para combinar columnas de cat_breeds y dog_breeds , como COALESCE(cat_breeds.col1, dog_breeds.col1) as col1 .