Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Mysql CASE WHEN JOIN Błąd instrukcji

Myślę, że zamierzasz:

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;

Uwagi:

  • Przy takim zapytaniu nie powinieneś używać SELECT * , należy wyraźnie wybrać żądane kolumny. Różne tabele mają kolumny o tej samej nazwie.
  • Powinieneś używać aliasów kolumn. Nie umieściłem ich w zapytaniu, ale to dobry pomysł.
  • W prawdziwym zapytaniu masz wyrażenia w SELECT połączyć kolumny z cat_breeds i dog_breeds , na przykład COALESCE(cat_breeds.col1, dog_breeds.col1) as col1 .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. usunąć informacje z tabeli mysql, gdy użytkownik zamknie przeglądarkę

  2. Wywołanie procedury składowanej , gdy nazwa procedury w zmiennej w mysql

  3. Znajdź podobne obrazy w (czystym) PHP / MySQL

  4. Dlaczego funkcje mysql_ PHP są przestarzałe?

  5. MySQL wyłącza i włącza klawisze