sql >> Database >  >> RDS >> Mysql

Mysql CASE WHEN JOIN-instructiefout

Ik denk dat je van plan bent:

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;

Opmerkingen:

  • Bij een zoekopdracht als deze moet u SELECT * . niet gebruiken , moet u expliciet de gewenste kolommen kiezen. De verschillende tabellen hebben kolommen met dezelfde naam.
  • U moet kolomaliassen gebruiken. Ik heb deze niet in de query gezet, maar ze zijn een goed idee.
  • In een echte zoekopdracht zou je uitdrukkingen hebben in de SELECT om kolommen van cat_breeds te combineren en dog_breeds , zoals COALESCE(cat_breeds.col1, dog_breeds.col1) as col1 .



  1. 7 goede technische gewoonten die alle werkgevers zouden moeten aannemen

  2. Wat is de beste manier om gevoelige gegevens op te slaan in MySQL?

  3. Mysql - LIMIET per percentage?

  4. Hibernate eqOrIsNull() gebruiken