Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL CASE WHEN JOIN-Anweisungsfehler

Ich denke, Sie beabsichtigen:

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;

Hinweise:

  • Bei einer Abfrage wie dieser sollten Sie SELECT * nicht verwenden , sollten Sie die gewünschten Spalten explizit auswählen. Die verschiedenen Tabellen haben Spalten mit demselben Namen.
  • Sie sollten Spaltenaliase verwenden. Ich habe diese nicht in die Abfrage eingefügt, aber sie sind eine gute Idee.
  • In einer echten Abfrage hätten Sie Ausdrücke in SELECT um Spalten von cat_breeds zu kombinieren und dog_breeds , wie z. B. COALESCE(cat_breeds.col1, dog_breeds.col1) as col1 .