[SQL] 어떻게 하나 개의 출력으로 두 개의 테이블에서 열을 병합 할 수 있습니다?
SQL어떻게 하나 개의 출력으로 두 개의 테이블에서 열을 병합 할 수 있습니다?
나는 유사한 정보를 가진 두 개의 테이블이있다. 이제 items_a 및 items_b 그들을 부르 자. 그들은 하나 여야합니다,하지만 그들은 서로 다른 소스에서 오는, 그래서 그들은하지 않습니다. 나는 두 개의 테이블을 풀에 가입하면, 일부 행은 하나 또는 두 테이블의 데이터로 끝낸다. 두 테이블의 열 중 하나는 CATEGORY_ID된다. 나는 CATEGORY_ID를 사용하여 범주 테이블과 결합 테이블을 교차하고 싶습니다. 그러나, 나는 지금이 CATEGORY_ID 열 (items_a에서 하나 items_b에서 하나)가 있습니다. 하나에 두 개의 열을 병합하는 방법이 있나요?
나는이 너무 질문을 혼동하지 않습니다 바랍니다.
해결법
-
==============================
1.쿼리에 열을 지정하면 트릭을 수행해야합니다
쿼리에 열을 지정하면 트릭을 수행해야합니다
select a.col1, b.col2, a.col3, b.col4, a.category_id from items_a a, items_b b where a.category_id = b.category_id
당신이 원하는 열을 따기에 관해서 트릭을해야한다.
일부 데이터가 items_a 만하고 일부 데이터가 items_b 만 있다는 사실을 해결하기 위해, 당신은 할 수있을 것입니다 :
select coalesce(a.col1, b.col1) as col1, coalesce(a.col2, b.col2) as col2, coalesce(a.col3, b.col3) as col3, a.category_id from items_a a, items_b b where a.category_id = b.category_id
병합 기능 그렇지 않으면 얻을 것이다, 그래서 COL1가 null 이외의 경우,이 것을 사용합니다 각 행에 대해, COL2 등의 값을 첫 번째 null이 아닌 값을 반환합니다
-
==============================
2.나는 당신이하고 싶은 것은 두 테이블의 UNION이라고 생각한다.
나는 당신이하고 싶은 것은 두 테이블의 UNION이라고 생각한다.
두 테이블은 다음 같은 열이있는 경우 당신은 할 수 있습니다
SELECT category_id, col1, col2, col3 FROM items_a UNION SELECT category_id, col1, col2, col3 FROM items_b
그 밖에, 당신은 같은 일을해야 할 수도 있습니다
SELECT category_id, col1, col2, col3 FROM items_a UNION SELECT category_id, col_1 as col1, col_2 as col2, col_3 as col3 FROM items_b
-
==============================
3.
SELECT col1, col2 FROM (SELECT rownum X,col_table1 FROM table1) T1 INNER JOIN (SELECT rownum Y, col_table2 FROM table2) T2 ON T1.X=T2.Y;
-
==============================
4.나는 작은 차이로 비슷한 문제가 있었다 : 일부 a.category_id는 B에없는 일부 b.category_id는에 있지 않습니다. 이 문제를 해결하기 위해 단지 beny23에서 excelent 대답을 적용
나는 작은 차이로 비슷한 문제가 있었다 : 일부 a.category_id는 B에없는 일부 b.category_id는에 있지 않습니다. 이 문제를 해결하기 위해 단지 beny23에서 excelent 대답을 적용
select a.col1, b.col2, a.col3, b.col4, a.category_id from items_a a LEFT OUTER JOIN items_b b on a.category_id = b.category_id
이 사람을 도움이되기를 바랍니다. 문안 인사.
-
==============================
5.때 당신은 세 개의 테이블 이상, 단지 노동 조합 및 왼쪽 외부 조인을 추가 할 수 있습니다 :
때 당신은 세 개의 테이블 이상, 단지 노동 조합 및 왼쪽 외부 조인을 추가 할 수 있습니다 :
select a.col1, b.col2, a.col3, b.col4, a.category_id from ( select category_id from a union select category_id from b ) as c left outer join a on a.category_id = c.category_id left outer join b on b.category_id = c.category_id
from https://stackoverflow.com/questions/2360396/how-can-i-merge-the-columns-from-two-tables-into-one-output by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 이 필드를 $ X를 포함하지 않는 SQL 쿼리 (0) | 2020.07.21 |
---|---|
[SQL] 나는 테이블 설명 (필드 이름과 유형)를 얻을 수있는 방법 Sybase 데이터베이스에서? (0) | 2020.07.21 |
[SQL] 플랫 파일 데이터베이스 [마감] (0) | 2020.07.21 |
[SQL] SQL 쿼리를 사용하여 int로 문자열을 변환 (0) | 2020.07.21 |
[SQL] 기존 테이블에 기본 키를 추가 (0) | 2020.07.21 |