복붙노트

[SQL] SQL 3 개 테이블 내부는 조인?

SQL

SQL 3 개 테이블 내부는 조인?

내가보기에 3 개 테이블을 조인하기 위해 노력하고있어; 여기 상황은 다음과 같습니다

나는이 대학 캠퍼스에 살고 신청하는 학생들의 정보를 포함하는 테이블이 있습니다. 나는 다른 테이블을 나열하는 각 학생의 홀 기본 설정 (중 3). 그러나 이러한 환경의 각각은 ID 번호와 ID 번호는 단지 세 번째 표에 해당 홀 이름이 있습니다 (...이 데이터베이스를 설계하지 않았다).

꽤 많이 나는 INNER 자신의 환경 설정 및 자신의 정보와 테이블에 합류, 결과는 같은 것입니다 ...

 John Doe | 923423 | Incoming Student | 005

경우 005은 HallID 될 것이다. 그래서 지금은이 테이블은 HallID 및 HallName이 들어 세 번째 테이블에 그 HallID 일치하도록합니다.

그래서 꽤 많이, 나는 내 결과처럼되고 싶어요 ...

 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

해결법

  1. ==============================

    1.당신은 (나는, 테이블 필드에 등을 추측) 다음을 수행 할 수 있습니다

    당신은 (나는, 테이블 필드에 등을 추측) 다음을 수행 할 수 있습니다

    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
    

    여러 홀에 대한 요청을 바탕으로 당신은이 방법을 수행 할 수 있습니다. 당신은 당신의 홀 테이블에 각 객실 현 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
    
  2. ==============================

    2.

    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. ==============================

    3.동일한 ID 3 개 테이블에 합류 할 경우, 나는 그것이 이렇게 될 것이라고 생각 :

    동일한 ID 3 개 테이블에 합류 할 경우, 나는 그것이 이렇게 될 것이라고 생각 :

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

    그냥 당신이 테이블에서 얻고 싶은 것과 *을 대체합니다.

  4. ==============================

    4.

    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
    
  5. ==============================

    5.당신은 두 번째 내부가 세 번째 테이블의 ID 번호 지금 가지고있는 것을 그 링크에게 ID 번호에 가입해야합니다. 그 후, 홀 이름과 짜잔하여 ID 번호를 대체 :)

    당신은 두 번째 내부가 세 번째 테이블의 ID 번호 지금 가지고있는 것을 그 링크에게 ID 번호에 가입해야합니다. 그 후, 홀 이름과 짜잔하여 ID 번호를 대체 :)

  6. ==============================

    6.

    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;
    
  7. ==============================

    7.이 응답을 많이하고 있지만 전반적인 교훈은 여러가 where 절에서 조인을 사용할 수있는 것 같다있다; 또한 techonthenet.com 혹시 다른 질문이 있고 단지 그것을 밖으로 시도하고 그림하려는 경우 좋은 SQL 자습서를 가지고 (내 상사는 내가 그것을 발견 방법이 나에게 그것을 권장).

    이 응답을 많이하고 있지만 전반적인 교훈은 여러가 where 절에서 조인을 사용할 수있는 것 같다있다; 또한 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
    
  8. ==============================

    8.이 ** 같은 ID로 3 테이블을 조인 올바른 쿼리입니다

    이 ** 같은 ID로 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';
    

    직원 첫 번째 테이블. 두 번째 테이블을보고합니다. 세 번째 테이블을 탄생

  9. ==============================

    9.

    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
    
  10. ==============================

    10.이 쿼리는 당신을 위해 작동합니다

    이 쿼리는 당신을 위해 작동합니다

    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
    
  11. ==============================

    11.

    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)
    
  12. ==============================

    12.

    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
    
  13. from https://stackoverflow.com/questions/10195451/sql-inner-join-with-3-tables by cc-by-sa and MIT license