복붙노트

[SQL] MySQL의 여러 하나 개의 쿼리에서 조인?

SQL

MySQL의 여러 하나 개의 쿼리에서 조인?

나는 다음과 같은 쿼리를 가지고 :

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

나는 내부 조인 사용하고 image_id를 잡아하고 그래서. 그래서 지금, 나는 그 image_id을하고 싶은 이미지 테이블에서 images.filename 변환합니다.

어떻게 쿼리에 그것을 추가 할 수 있습니까?

해결법

  1. ==============================

    1.당신은 단순히 다음과 같이 가입 다른를 추가 할 수 있습니다 :

    당신은 단순히 다음과 같이 가입 다른를 추가 할 수 있습니다 :

    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 
    

    그 내부는 이미지없이 메시지가있는 경우, 전체 행은 건너 뜁니다, 가입이기 때문에,주의하십시오. 이 가능성이있는 경우, 당신은 LEFT OUTER 모든 대시 보드의 메시지가 존재하는 경우에만 image_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
        LEFT OUTER JOIN images
            ON dashboard_messages.image_id = images.image_id 
    
  2. ==============================

    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
    
  3. ==============================

    3.나는 왼쪽은 단일 SQL 쿼리 조인 두 가지를 사용하여 내 경험을 공유했습니다.

    나는 왼쪽은 단일 SQL 쿼리 조인 두 가지를 사용하여 내 경험을 공유했습니다.

    내가 3 개 테이블이 :

    표 1) 환자가 열을 구성 PatientID, PatientName

    표 2) 약속이 열을 구성 AppointmentID, AppointmentDateTime, PatientID, DoctorID

    의사 열 DoctorID, DoctorName로 구성) 표 3

    질문:

    SELECT Patient.patientname, AppointmentDateTime, Doctor.doctorname
    
    FROM Appointment 
    
    LEFT JOIN Doctor ON Appointment.doctorid = Doctor.doctorId  //have doctorId column common
    
    LEFT JOIN Patient ON Appointment.PatientId = Patient.PatientId      //have patientid column common
    
    WHERE Doctor.Doctorname LIKE 'varun%' // setting doctor name by using LIKE
    
    AND Appointment.AppointmentDateTime BETWEEN '1/16/2001' AND '9/9/2014' //comparison b/w dates 
    
    ORDER BY AppointmentDateTime ASC;  // getting data as ascending order
    

    나는 "MM / DD / YY"(내 이름으로 "바룬 테지 레디")와 같은 날짜 형식을 얻을 수있는 솔루션을 썼다

  4. ==============================

    4.멀티 점진적으로 차례로 파생 테이블을 생성하여 SQL 작업에 합류했다. 과정을 설명하는이 링크를 참조하십시오 :

    멀티 점진적으로 차례로 파생 테이블을 생성하여 SQL 작업에 합류했다. 과정을 설명하는이 링크를 참조하십시오 :

    https://www.interfacett.com/blogs/multiple-joins-work-just-like-single-joins/

  5. from https://stackoverflow.com/questions/8974328/mysql-multiple-joins-in-one-query by cc-by-sa and MIT license