sql - दो अलग-अलग कॉलमों के लिए किसी अन्य एसक्यूएल तालिका से मिलान डेटा कैसे प्राप्त करें: इनर जॉइन एंड/या यूनियन?




ms-access inner-join (2)

मुझे एमएस एक्सेस में दो तालिकाओं मिलती हैं, जो वर्ग के सुविधाकर्ताओं और उन कक्षाओं को ट्रैक करते हैं जो उन्हें सुविधा प्रदान करते हैं। दो तालिकाओं को संरचित किया गया है:

tbl_facilitators

facilID -> a unique autonumber to keep track of individual teachers
facilLname -> the Last name of the facilitator
facilFname -> the First name of the facilitator

tbl_facilitatorClasses

classID -> a unique autonumber to keep track of individual classes
className -> the name of the class (science, math, etc)
primeFacil -> the facilID from the first table of a teacher who is primary facilitator
secondFacil -> the facilID  from the first table of another teacher who is backup facilitator

मैं यह समझ नहीं पा रहा हूं कि अंदरूनी लिखने के लिए कैसे इस प्रारूप में परिणाम खींचता है:

Column 1:  Class Name
Column 2:  Primary Facilitator's Last Name
Column 3:  Primary Facilitator's First Name
Column 4:  Secondary Facilitator's Last Name
Column 5:  Secondary Facilitator's First Name

मैं ऊपर खींचने और सही परिणाम प्राप्त करने में सक्षम हूं अगर मैं केवल प्राथमिक सुविधाकर्ता को स्वयं से अनुरोध करता हूं या केवल द्वितीयक सुविधा देने के लिए स्वयं से अनुरोध करता हूं मैं उन्हें दोनों काम करने के लिए नहीं मिल सकता, यद्यपि।

यह मेरा काम भीतरी सम्मिलित है:

SELECT tbl_facilitatorClasses.className,
    tbl_facilitators.facilLname, tbl_facilitators.facilFname
FROM tbl_facilitatorClasses
INNER JOIN tbl_facilitators
ON tbl_facilitatorClasses.primeFacil = tbl_facilitators.facilID;

हताशा से मैंने भी एक संघ की कोशिश की, लेकिन यह काम नहीं कर रहा था जैसा मैंने आशा व्यक्त की थी। आपकी मदद बहुत ही सराहनिय है। मैं वास्तव में इस बिंदु पर कोई प्रगति करने के लिए संघर्ष कर रहा हूँ। मैं अक्सर एसक्यूएल के साथ काम नहीं करते

उपाय

@ फिलिपक्स के लिए धन्यवाद मैं निम्नलिखित प्रश्न के साथ आया था जो काम समाप्त हो गया था:

SELECT tblCLS.className,
    tblP.facilLname, tblP.facilFname, tblS.facilLname, tblS.facilFname
FROM (tbl_facilitatorClasses AS tblCLS
INNER JOIN tbl_facilitators AS tblP
ON tblCLS.primeFacil=tblP.facilID)
INNER JOIN tbl_facilitators AS tblS
ON tblCLS.secondFacil=tblS.facilID;

एमएस एक्सेस में कई इनर जुड़ने के दौरान, कोष्ठक की आवश्यकता होती है ... जैसा कि इस अन्य पोस्ट में वर्णित है


बस माध्यमिक सुविधा के लिए एक अतिरिक्त शामिल करते हैं (और कृपया तालिका उपनाम का उपयोग करें!):

SELECT fc.className, f1.facilLname, f2.facilFname
FROM tbl_facilitatorClasses fc
INNER JOIN tbl_facilitators f1 ON fc.primeFacil = f1.facilID
INNER JOIN tbl_facilitators f2 ON fc.secondFacil = f2.facilID;

मैं इसे ऊपर से दो बार tbl_facilitators तालिका में शामिल करके कर सकता हूँ, लेकिन आप यह सुनिश्चित करना चाहते हैं कि हर वर्ग को वास्तव में एक दूसरी सुविधा देने की आवश्यकता होती है क्योंकि दूसरा शामिल होने के बजाय बाहरी सहभागी होना चाहिए। दरअसल यह मानना ​​सुरक्षित होगा कि यह एक आवश्यक फ़ील्ड नहीं है





self-join