뷰에서 3 개의 테이블을 조인하려고합니다. 상황은 다음과 같습니다.
이 대학 캠퍼스에 지원하기 위해 지원하는 학생들의 정보가 담긴 테이블이 있습니다. 각 학생의 홀 기본 설정 (3 개)을 나열한 다른 테이블이 있습니다. 그러나 이러한 각 환경 설정은 단순히 ID 번호이며 ID 번호는 세 번째 테이블에 해당 홀 이름이 있습니다 (이 데이터베이스를 설계하지 않았습니다 …).
거의, 나는 INNER JOIN
그들의 선호도와 정보로 테이블에 있습니다. 결과는 다음과 같습니다 …
John Doe | 923423 | Incoming Student | 005
어디 005
있을 것 HallID
입니다. 이제이 HallID
테이블에 HallID
and 가 포함 된 세 번째 테이블 과 일치 시키려고합니다 HallName
.
결과는 다음과 같습니다.
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
답변
다음을 수행 할 수 있습니다 (테이블 필드 등을 추측했습니다)
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
여러 홀에 대한 귀하의 요청에 따라이 방법으로 할 수 있습니다. 각 회의실 준비에 대해 홀 테이블에 여러 번 참가하면됩니다.
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
답변
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
답변
같은 테이블을 가진 3 개의 테이블이 있다면 다음 ID
과 같이 생각합니다.
SELECT * FROM table1 a
JOIN table2 b ON a.ID = b.ID
JOIN table3 c ON a.ID = c.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
답변
ID Number
지금 가지고 있는 것을 ID Number
세 번째 테이블과 연결하는 두 번째 내부 조인 만 있으면 됩니다. 그 후, 교체 ID Number
에 의해 Hall Name
봐라 🙂
답변
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;
답변
많은 응답이 있었지만 전반적인 교훈은 where 절에서 여러 개의 JOINS를 사용할 수 있다는 것입니다. 또한 techonthenet.com (내 상사가 나에게 추천 했으므로 그것이 내가 찾은 방법입니다) 다른 질문이 있고 시도하고 알아 내고 싶다면 훌륭한 SQL 자습서가 있습니다.
SELECT table1.column1
FROM table1
WHERE table1 > 0 (or whatever you want to specify)
INNER JOIN table1
ON table1.column1 = table2.column1