381 Stimmen

SQL Inner-Join mit 3 Tabellen?

Ich versuche, 3 Tabellen in einer Ansicht zu verbinden; hier ist die Situation:

Ich habe eine Tabelle, die Informationen über Studenten enthält, die sich für ein Leben auf dem Campus dieses Colleges bewerben. Ich habe eine weitere Tabelle, die die Wohnheimpräferenzen (3 Stück) für jeden Studenten auflistet. Aber jede dieser Präferenzen ist nur eine ID-Nummer, und die ID-Nummer hat einen entsprechenden Hallennamen in einer dritten Tabelle (ich habe diese Datenbank nicht entworfen...).

Ziemlich viel, ich habe INNER JOIN mit ihren Präferenzen und Informationen auf den Tisch legen, ist das Ergebnis etwa so...

 John Doe | 923423 | Incoming Student | 005

Wo 005 wäre die HallID . Jetzt möchte ich das anpassen HallID in eine dritte Tabelle, wobei diese Tabelle eine HallID y HallName .

Ich möchte also, dass mein Ergebnis in etwa so aussieht...

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

Hier ist, was ich derzeit habe:

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

3voto

ashu Punkte 31
SELECT * 
FROM 
    PersonAddress a, 
    Person b,
    PersonAdmin c
WHERE a.addressid LIKE '97%' 
    AND b.lastname LIKE 'test%'
    AND b.genderid IS NOT NULL
    AND a.partyid = c.partyid 
    AND b.partyid = c.partyid;

2voto

Sri Siva Punkte 29

Dies ist die richtige Abfrage für die Verknüpfung von 3 Tabellen mit derselben ID**

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';

Mitarbeiter erste Tabelle. Bericht zweite Tabelle. Geburt dritte Tabelle

2voto

Nathan Punkte 29

Es gab viele Antworten, aber die allgemeine Lektion scheint zu sein, dass man mehrere JOINS in einer Where-Klausel verwenden kann; auch techonthenet.com (mein Chef hat es mir empfohlen, so habe ich es gefunden) hat gute SQL-Tutorials, wenn Sie jemals eine andere Frage haben und Sie einfach versuchen wollen, es herauszufinden.

SELECT table1.column1
FROM table1
WHERE table1 > 0 (or whatever you want to specify)
INNER JOIN table1 
ON table1.column1 = table2.column1

1voto

p.ajay Punkte 21
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

1voto

Diese Abfrage wird für Sie funktionieren

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X