하나의 쿼리에서 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
그래서 나는을 사용 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
이미지가없는 메시지가있는 경우 전체 행을 건너 뜁니다. 이것이 가능한 경우 LEFT OUTER JOIN
모든 대시 보드 메시지와 하나가있는 경우에만 image_filename을 반환 하는 a를 수행 할 수 있습니다 (그렇지 않으면 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
다른 조인을 추가하기 만하면됩니다.
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
단일 SQL 쿼리에서 두 개의 LEFT JOINS를 사용한 경험을 공유했습니다.
3 개의 테이블이 있습니다.
표 1) 환자는 PatientID, PatientName 열로 구성됩니다.
표 2) Appointment는 AppointmentID, AppointmentDateTime, PatientID, DoctorID 열로 구성됩니다.
표 3) Doctor는 DoctorID, DoctorName 열로 구성됩니다.
질문:
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" (내 이름 "VARUN TEJ REDDY") 와 같은 날짜 형식 을 얻는 솔루션을 작성했습니다.
SQL의 다중 조인은 파생 테이블을 차례로 점진적으로 생성하여 작동합니다. 프로세스를 설명하는 다음 링크를 참조하십시오.
https://www.interfacett.com/blogs/multiple-joins-work-just-like-single-joins/
참고 URL : https://stackoverflow.com/questions/8974328/mysql-multiple-joins-in-one-query
'code' 카테고리의 다른 글
데이터를 덮어 쓰지 않고 기존 Excel 파일에 쓰는 방법 (Pandas 사용)? (0) | 2020.08.16 |
---|---|
Rsync는 디렉토리 내용을 복사하지만 디렉토리 자체는 복사하지 않습니다. (0) | 2020.08.16 |
msbuild를 사용하여 솔루션의 프로젝트 파일 지정 (0) | 2020.08.16 |
튜플이 목록보다 메모리 공간을 덜 차지하는 이유는 무엇입니까? (0) | 2020.08.16 |
메타 클래스의 (구체적인) 사용 사례는 무엇입니까? (0) | 2020.08.16 |