चूंकि appointmnent_id Appointment . की प्राथमिक कुंजी है , इस तालिका में एक 1:N . है सभी 6 तालिकाओं के साथ संबंध।
यही वह स्थिति है जहां इन 6 तालिकाओं में शामिल होने से डुप्लिकेट डेटा वाली कई पंक्तियां उत्पन्न होंगी , यह एक Cartesian Product की तरह है . उदाहरण के लिए यदि (केवल एक 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 में से) टेबल के साथ करते हैं (और आधार तालिका से डेटा प्राप्त करने के लिए एक और क्वेरी Appointment ) और आवेदन कोड में 6 प्रश्नों के परिणामों को संयोजित करें . पहली तालिका में शामिल होने के लिए आधार क्वेरी और क्वेरी के लिए उदाहरण:
आधार तालिका :
SELECT
a.appointment_id,
a.patient_id
FROM
Appointment AS a
WHERE
a.appointment_id = 46
रोगी जांच में शामिल हों-1 :
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