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

Połączenia MySQL:wybór tabeli do dołączenia na podstawie danych tabeli źródłowej

Chcesz wiele left join s, w zależności od typu. Myślę, że coś takiego:

SELECT e.*,
       COALESCE(h.name, f.name, c.name, r.name) as name
FROM events e LEFT JOIN
     holidays h
     on h.id = e.reference_id AND
        e.topic_type = 'holiday' LEFT JOIN
     fundays f
     on f.id = e.reference_id AND
        e.topic_type = 'funday' LEFT JOIN
     cruises c
     on c.id = e.reference_id AND
        e.topic_type = 'cruise' LEFT JOIN
     recruitment r
     on f.id = e.reference_id AND
        e.topic_type = 'recruitment'    
WHERE e.event_id = 1 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bezpieczne wdrożenie konfigurowalnego systemu łączenia

  2. Tablica i tabela stowarzyszona PHP MYSQL

  3. Używanie dict Pythona do instrukcji SQL INSERT

  4. Uruchom, aby zaktualizować wiersz w innej tabeli

  5. MySQL — jakiego algorytmu skrótu powinienem do tego użyć?