mysql - таблицы - порядок выполнения join



MySQL Несколько соединений в одном запросе? (2)

Вы можете просто добавить другое соединение следующим образом:

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 

Однако имейте в виду, что, поскольку это INNER JOIN , если у вас есть сообщение без изображения, вся строка будет пропущена. Если это возможно, вы можете сделать LEFT OUTER JOIN который вернет все ваши сообщения панели мониторинга и имя_файла только в том случае, если он существует (иначе вы получите нуль)

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 

https://code.i-harness.com

У меня есть следующий запрос:

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

Поэтому я использую INNER JOIN и захватываю image_id . Итак, теперь я хочу взять этот image_id и превратить его в images.filename из таблицы изображений.

Как добавить это к моему запросу?


Просто добавьте еще одно соединение:

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




join