sql एसक्यूएल इनर-3 टेबल के साथ जुड़ें?




join inner-join (8)

मैं एक दृश्य में 3 टेबल में शामिल होने की कोशिश कर रहा हूं; यहां स्थिति है:

मेरे पास एक सारणी है जिसमें इस कॉलेज कैंपस पर रहने के लिए आवेदन करने वाले छात्रों की जानकारी शामिल है। मेरे पास एक और टेबल है जो प्रत्येक छात्र के लिए हॉल प्राथमिकताएं (उनमें से 3) सूचीबद्ध करता है। लेकिन इनमें से प्रत्येक प्राथमिकता केवल एक आईडी संख्या है, और आईडी संख्या में एक तीसरी तालिका में संबंधित हॉल नाम है (इस डेटाबेस को डिज़ाइन नहीं किया गया है ...)।

बहुत ज्यादा, मैंने टेबल पर अपनी प्राथमिकताओं के साथ मेज पर शामिल किया है, और उनकी जानकारी, परिणाम कुछ ऐसा है ...

 John Doe | 923423 | Incoming Student | 005

जहां 005 हॉलिड होगा। तो अब मैं उस हॉलिड से तीसरे टेबल पर मेल खाना चाहता हूं, जहां इस तालिका में एक हॉलिड और हॉलनाम शामिल है।

बहुत ज्यादा, मैं चाहता हूं कि मेरा परिणाम जैसा हो ...

 John Doe | 923423 | Incoming Student | Foley Hall <---(INSTEAD OF 005)

यहां संपादित करें जो मेरे पास वर्तमान में है

SELECT
  s.StudentID, s.FName, 
  s.LName, s.Gender, s.BirthDate, s.Email, 
  r.HallPref1, r.HallPref2, r.HallPref3
FROM
  dbo.StudentSignUp AS s 
  INNER JOIN RoomSignUp.dbo.Incoming_Applications_Current AS r 
    ON s.StudentID = r.StudentID 
  INNER JOIN HallData.dbo.Halls AS h 
    ON r.HallPref1 = h.HallID

एक ही आईडी के साथ 3 टेबल में शामिल होने के लिए यह सही क्वेरी है **

select a.empname,a.empsalary,b.workstatus,b.bonus,c.dateofbirth from employee a, Report b,birth c where a.empid=b.empid and a.empid=c.empid and b.empid='103';

कर्मचारी पहली टेबल। दूसरी तालिका की रिपोर्ट करें। जन्म तीसरी मेज


select empid,empname,managename,[Management ],cityname  
from employees inner join Managment  
on employees.manageid = Managment.ManageId     
inner join CITY on employees.Cityid=CITY.CityId


id name  managename  managment  cityname
----------------------------------------
1  islam   hamza       it        cairo

यह क्वेरी आपके लिए काम करेगी

Select b.id as 'id', u.id as 'freelancer_id', u.name as 
'free_lancer_name', p.user_id as 'project_owner', b.price as 
'bid_price', b.number_of_days as 'days' from User u, Project p, Bid b 
where b.user_id = u.id and b.project_id = p.id

SELECT table1.col,table2.col,table3.col 
FROM table1 
INNER JOIN 
(table2 INNER JOIN table3 
ON table3.id=table2.id) 
ON table1.id(f-key)=table2.id
AND //add any additional filters HERE

आप निम्नलिखित कर सकते हैं (मैंने टेबल फ़ील्ड्स पर अनुमान लगाया है, आदि)

SELECT s.studentname
    , s.studentid
    , s.studentdesc
    , h.hallname
FROM students s
INNER JOIN hallprefs hp
    on s.studentid = hp.studentid
INNER JOIN halls h
    on hp.hallid = h.hallid

संपादित करें:

एकाधिक हॉल के लिए आपके अनुरोध के आधार पर आप इसे इस तरह से कर सकते हैं। आप प्रत्येक कमरे pref आईडी के लिए बस अपने हॉल टेबल पर कई बार शामिल हों:

SELECT     s.StudentID
    , s.FName
    , s.LName
    , s.Gender
    , s.BirthDate
    , s.Email
    , r.HallPref1
    , h1.hallName as Pref1HallName
    , r.HallPref2 
    , h2.hallName as Pref2HallName
    , r.HallPref3
    , h3.hallName as Pref3HallName
FROM  dbo.StudentSignUp AS s 
INNER JOIN RoomSignUp.dbo.Incoming_Applications_Current AS r 
    ON s.StudentID = r.StudentID 
INNER JOIN HallData.dbo.Halls AS h1 
    ON r.HallPref1 = h1.HallID
INNER JOIN HallData.dbo.Halls AS h2
    ON r.HallPref2 = h2.HallID
INNER JOIN HallData.dbo.Halls AS h3
    ON r.HallPref3 = h3.HallID

आपको केवल एक दूसरे आंतरिक शामिल होने की आवश्यकता है जो ID Number लिंक करता है जो आपके पास अब तीसरी तालिका के ID Number पर है। इसके बाद, Hall Name और voilá द्वारा ID Number को प्रतिस्थापित करें :)


SELECT 
A.P_NAME AS [INDIVIDUAL NAME],B.F_DETAIL AS [INDIVIDUAL FEATURE],C.PL_PLACE AS [INDIVIDUAL LOCATION]
FROM 
[dbo].[PEOPLE] A
INNER JOIN 
[dbo].[FEATURE] B ON A.P_FEATURE = B.F_ID
INNER JOIN 
[dbo].[PEOPLE_LOCATION] C ON A.P_LOCATION = C.PL_ID

SELECT column_Name1,column_name2,......
  From tbl_name1,tbl_name2,tbl_name3
  where tbl_name1.column_name = tbl_name2.column_name 
  and tbl_name2.column_name = tbl_name3.column_name




inner-join