appointmnent_id
以降 Appointment
の主キーです 、このテーブルには 1:N
があります 6 つのテーブルすべてとの関係。
これは、これら 6 つのテーブルに結合すると、重複データを含む複数の行が生成される場合です。 、それは Cartesian Product
のようなものです .たとえば、(1 つの id=46
のみの場合) )、以下があります:
PatientInvestigation
の 3 行PatientTreatmentMedicine
の 6 行PatientFindings
の 4 行PatientDiagnosis
の 2 行PatientCC
の 2 行PatientAdvice
の 5 行
3x6x4x2x2x5 =1440
が得られます 結果セットの行、必要なのは 3+6+4+2+2+5 (+1) =23
だけです 行。これは、必要な行数の 60 倍 (さらに列数が多い) です。
6 つの個別のクエリを実行し、各クエリで (6 つのうちの) 1 つのテーブルに 1 つの JOIN を使用することをお勧めします。 (ベース テーブル Appointment
からデータを取得するためのもう 1 つのクエリ )。 アプリケーション コードで 6 つのクエリの結果を組み合わせる .基本クエリと最初のテーブルに結合するクエリの例:
ベース テーブル :
SELECT
a.appointment_id,
a.patient_id
FROM
Appointment AS a
WHERE
a.appointment_id = 46
PatientInvestigation に参加してください :
SELECT
pi.investigation_name,
pi.investigation_id
FROM
Appointment AS a
JOIN
PatientInvestigation AS pi
ON pi.appointment_id = a.appointment_id
WHERE
a.appointment_id = 46