How to join two tables by multiple columns in SQL?

后端 未结 5 998
既然无缘
既然无缘 2020-12-29 06:03

I have two tables named Evaluation and Value.

In both tables, there are four columns. But three of the four are the same. In other words, th

相关标签:
5条回答
  • 2020-12-29 06:45

    Yes: You can use Inner Join to join on multiple columns.

    SELECT E.CaseNum, E.FileNum, E.ActivityNum, E.Grade, V.Score from Evaluation E
    INNER JOIN Value V
    ON E.CaseNum = V.CaseNum AND
        E.FileNum = V.FileNum AND 
        E.ActivityNum = V.ActivityNum
    

    Create table

    CREATE TABLE MyNewTab(CaseNum int, FileNum int,
        ActivityNum int, Grade int, Score varchar(100))
    

    Insert values

    INSERT INTO MyNewTab Values(CaseNum, FileNum, ActivityNum, Grade, Score)
    SELECT E.CaseNum, E.FileNum, E.ActivityNum, E.Grade, V.Score from Evaluation E
    INNER JOIN Value V
    ON E.CaseNum = V.CaseNum AND
        E.FileNum = V.FileNum AND 
        E.ActivityNum = V.ActivityNum
    
    0 讨论(0)
  • 2020-12-29 06:50

    No, just include the different fields in the "ON" clause of 1 inner join statement:

    SELECT * from Evalulation e JOIN Value v ON e.CaseNum = v.CaseNum
        AND e.FileNum = v.FileNum AND e.ActivityNum = v.ActivityNum
    
    0 讨论(0)
  • 2020-12-29 06:59

    You would basically want something along the lines of:

    SELECT e.*, v.Score
      FROM Evaluation e
    LEFT JOIN Value v
    ON v.CaseNum = e.CaseNum AND
    v.FileNum = e.FileNum AND
    v.ActivityNum = e.ActivityNum;
    
    0 讨论(0)
  • 2020-12-29 07:02
    SELECT E.CaseNum, E.FileNum, E.ActivityNum, E.Grade, V.Score
    FROM Evaluation E
    INNER JOIN Value V
    ON E.CaseNum = V.CaseNum AND E.FileNum = V.FileNum AND E.ActivityNum = V.ActivityNum
    
    0 讨论(0)
  • 2020-12-29 07:04

    You should only need to do a single join:

    SELECT e.Grade, v.Score, e.CaseNum, e.FileNum, e.ActivityNum
    FROM Evaluation e
    INNER JOIN Value v ON e.CaseNum = v.CaseNum AND e.FileNum = v.FileNum AND e.ActivityNum = v.ActivityNum
    
    0 讨论(0)
提交回复
热议问题