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 voncat_breeds
zu kombinieren unddog_breeds
, wie z. B.COALESCE(cat_breeds.col1, dog_breeds.col1) as col1
.