मुझे लगता है कि आपका इरादा है:
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;
नोट:
- इस तरह की क्वेरी के साथ, आपको
SELECT *
. का उपयोग नहीं करना चाहिए , आपको अपने इच्छित कॉलम स्पष्ट रूप से चुनने चाहिए। अलग-अलग टेबल में एक ही नाम के कॉलम होते हैं। - आपको कॉलम एलियासेस का उपयोग करना चाहिए। मैंने इन्हें क्वेरी में नहीं डाला, लेकिन ये एक अच्छा विचार है।
- वास्तविक क्वेरी में, आपके पास
SELECT
. में भाव होंगेcat_breeds
. से स्तंभों को संयोजित करने के लिए औरdog_breeds
, जैसेCOALESCE(cat_breeds.col1, dog_breeds.col1) as col1
।