sourcecode

SQL에서 두 개의 테이블을 여러 열로 결합하는 방법?

codebag 2023. 9. 20. 20:20
반응형

SQL에서 두 개의 테이블을 여러 열로 결합하는 방법?

이름이 붙은 테이블이 두 개 있습니다.Evaluation그리고.Value.

두 표에 모두 4개의 열이 있습니다.하지만 네 개 중 세 개는 똑같습니다.다시 말해, 그들은 둘 다 다음과 같은 것을 가지고 있습니다.CaseNum,FileNum,ActivityNum기둥들그 외에도.Evaluation테이블은.Grade칼럼, 그리고Value테이블은.Score기둥.

저는 그 둘을 하나의 테이블로 합치고 싶습니다.CaseNum,FileNum,그리고.ActivityNum, 그래서 나는 5열로 된 새로운 테이블을 가지고 있습니다.Value그리고.Score.

사용해도 됩니까?INNER JOIN여러 번이나요?

예: 여러 열에 가입하는 데 사용할 수 있습니다.

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 MyNewTab(CaseNum int, FileNum int,
    ActivityNum int, Grade int, Score varchar(100))

값삽입

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

아니요, 1 inner join 문의 "ON" 절에 다른 필드를 포함시키기만 하면 됩니다.

SELECT * from Evalulation e JOIN Value v ON e.CaseNum = v.CaseNum
    AND e.FileNum = v.FileNum AND e.ActivityNum = v.ActivityNum

단일 조인만 수행하면 됩니다.

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

기본적으로 다음과 같은 것을 원하게 됩니다.

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

언급URL : https://stackoverflow.com/questions/26916741/how-to-join-two-tables-by-multiple-columns-in-sql

반응형