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

MySQL Multiple Join in una query?

Puoi semplicemente aggiungere un altro join come questo:

SELECT dashboard_data.headline, dashboard_data.message, dashboard_messages.image_id, images.filename
FROM dashboard_data 
    INNER JOIN dashboard_messages 
        ON dashboard_message_id = dashboard_messages.id
    INNER JOIN images
        ON dashboard_messages.image_id = images.image_id 

Tuttavia, tienilo presente, poiché è un INNER JOIN , se hai un messaggio senza un'immagine, l'intera riga verrà saltata. Se questa è una possibilità, potresti voler fare un LEFT OUTER JOIN che restituirà tutti i messaggi della dashboard e un image_filename solo se ne esiste uno (altrimenti otterrai un null)

SELECT dashboard_data.headline, dashboard_data.message, dashboard_messages.image_id, images.filename
FROM dashboard_data 
    INNER JOIN dashboard_messages 
        ON dashboard_message_id = dashboard_messages.id
    LEFT OUTER JOIN images
        ON dashboard_messages.image_id = images.image_id