次のような質問があります。
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テーブルから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
別の参加を追加するだけです。
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
1回のSQLクエリで2つのLEFT JOINを使用した経験を共有しました。
私は3つのテーブルがあります。
表1)患者は列PatientID、PatientNameで構成されています
表2)予定は列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 REDD"のように)を得るための解決策を書きました。
SQLでのマルチジョインは、派生テーブルを次々に作成することによって機能します。プロセスを説明するこのリンクを参照してください。
https://www.interfacett.com/blogs/multiple-joins-work-just-like-single-joins/