SQL Interior-alăturați-vă cu 3 mese?

Am'm încercat să se alăture 3 mese în vedere; aici este situația:

Am un tabel care conține informații de studenți care aplică pentru a trăi pe acest Campus universitar. Am un alt tabel care listează Sala de Preferințe (3) pentru fiecare Elev. Dar fiecare dintre aceste preferințe sunt doar un Număr de IDENTIFICARE și Numărul de ID-ul corespunde un Hol Numele într-o a treia masa (nu de design această bază de date...).

Destul de mult, am INNER JOIN pe masă cu preferințele lor, și informații lor, rezultatul este ceva de genul...

 John Doe | 923423 | Incoming Student | 005

Unde 005 ar fi HallID. Deci, Acum vreau pentru a se potrivi că HallID la un al treilea tabel, în cazul în care acest tabel conține o HallID " și " HallName.

Deci, destul de mult, vreau ca rezultatul sa fie ca...

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

Aici este ceea ce am în prezent:

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
Soluția

Puteți face următoarele (am ghicit pe câmpurile de tabel,etc)

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

În funcție de cererea dumneavoastră pentru mai multe săli ai putea face în acest fel. Tocmai am intrat pe site-Sala de masa de mai multe ori pentru fiecare cameră pref id:

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
Comentarii (4)
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
Comentarii (1)

Dacă ai 3 mese cu același " ID " să fie uniți, cred că ar fi ca aceasta:

SELECT * FROM table1 a
JOIN table2 b ON a.ID = b.ID
JOIN table3 c ON a.ID = c.ID

Doar înlocui * cu ceea ce doriți să obțineți de la mese.

Comentarii (0)
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
Comentarii (0)

Ai nevoie doar de un al doilea inner join care leagă Numărul de ID-ul pe care le au acum la Numărul de IDENTIFICARE de cea de-a treia masă. După aceea, înlocuiți la `ID Număr " de " Sala Numele și voilá :)

Comentarii (0)
select products.product_id, product_name, price, created_at, image_name, categories.category_id, category_name,brands.brand_id, brand_name 
FROM products INNER JOIN categories USING (category_id) INNER JOIN brands USING(brand_id)
Comentarii (0)

Acolo au fost o mulțime de răspunsuri, dar în general lecție pare a fi faptul că puteți folosi mai multe se ALĂTURĂ într-o clauză where; de asemenea, techonthenet.com (seful meu mi l-a recomandat, ca's cum am găsit-o) are o bună SQL tutoriale dacă aveți vreodată o altă întrebare și vrei doar pentru a încerca și dau seama.

SELECT table1.column1
FROM table1
WHERE table1 > 0 (or whatever you want to specify)
INNER JOIN table1 
ON table1.column1 = table2.column1
Comentarii (0)
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;
Comentarii (0)
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
Comentarii (0)

Acest lucru este corect interogare pentru a se alăture 3 tabelul cu același 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';

angajat primul tabel. raport de-al doilea tabel. naștere la a treia masă

Comentarii (0)

Această interogare va lucra pentru tine

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
Comentarii (0)
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
Comentarii (0)