본문 바로가기
MySql

MySQL 하나의 쿼리에서 MySQL 다중 조인?

by 베이스 공부 2020. 9. 16.
반응형

다음 쿼리가 있습니다.

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 

그러나 INNER JOIN 이므로 이미지가없는 메시지가있는 경우 전체 행을 건너 뜁니다. 이것이 가능한 경우 모든 대시 보드 메시지와 하나가있는 경우에만 image_filename을 반환하는 LEFT OUTER JOIN 을 수행 할 수 있습니다 (그렇지 않으면 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 

 

참조 페이지 https://stackoverflow.com/questions/8974328

 

 

반응형

댓글