sql >> Database teknologi >  >> RDS >> Mysql

Mysql CASE NÅR JOIN Erklæring Fejl

Jeg tror, ​​du agter:

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;

Bemærkninger:

  • Med en forespørgsel som denne bør du ikke bruge SELECT * , skal du udtrykkeligt vælge de kolonner, du ønsker. De forskellige tabeller har kolonner med samme navn.
  • Du bør bruge kolonnealiasser. Jeg har ikke lagt disse ind i forespørgslen, men de er en god idé.
  • I en rigtig forespørgsel vil du have udtryk i SELECT at kombinere kolonner fra cat_breeds og dog_breeds , såsom COALESCE(cat_breeds.col1, dog_breeds.col1) as col1 .



  1. DROP FUNKTION uden at kende antallet/typen af ​​parametre?

  2. Hvad knytter Hibernate en boolesk datatype til, når der som standard bruges en Oracle-database?

  3. Få størrelsen på alle databaser i PostgreSQL (psql)

  4. Python 3.7, mislykket bygningshjul til MySql-Python