Saya pikir Anda berniat:
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;
Catatan:
- Dengan kueri seperti ini, Anda tidak boleh menggunakan
SELECT *
, Anda harus secara eksplisit memilih kolom yang Anda inginkan. Tabel yang berbeda memiliki kolom dengan nama yang sama. - Anda harus menggunakan alias kolom. Saya tidak memasukkan ini ke dalam kueri, tapi itu ide yang bagus.
- Dalam kueri nyata, Anda akan memiliki ekspresi di
SELECT
untuk menggabungkan kolom daricat_breeds
dandog_breeds
, sepertiCOALESCE(cat_breeds.col1, dog_breeds.col1) as col1
.