Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL Multiple Joins em uma consulta?


Você pode simplesmente adicionar outra junção como esta:
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 

No entanto, esteja ciente de que, porque é um INNER JOIN , se você tiver uma mensagem sem imagem, a linha inteira será ignorada. Se esta for uma possibilidade, você pode querer fazer um LEFT OUTER JOIN que retornará todas as mensagens do seu painel e um nome_de_arquivo de imagem somente se existir (caso contrário, você obterá um 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