[SQL] 크로스 중복 조합없이 가입
SQL크로스 중복 조합없이 가입
이 질문은 이것과 매우 유사합니다 알고 : 대칭 크로스 가입 이 일이 너무 : 크로스 조합 (하지 순열)는 SQL에 참여
우리는 두 개의 서로 다른 테이블이 경우에, A와 B를 무슨 말에 대해 :
select A.id,B.id from A cross join B
나는 (B A)를 동일 쌍 (A, B)을 고려하는 것이 좋습니다?
해결법
-
==============================
1.
select A.id aid,B.id bid from A inner join B on a.id <= b.id union select B.id,A.id from A inner join B on b.id < a.id
좀 더 정교하고 싶었 경우 :
select distinct case when a.id<=b.id then a.id else b.id end id1, case when a.id<=b.id then b.id else a.id end id2 from A cross join B
작은 테이블 내 작은 비 과학적 베이크 오프에서, 후자는 더 빨랐다. 그리고 아래의 경우 표현식은 서브 쿼리로 작성.
select distinct (select MIN(id) from (select a.id union select b.id)[ ]) id1, (select MAX(id) from (select a.id union select b.id)[ ]) id2 from A cross join B
from https://stackoverflow.com/questions/12932045/cross-join-without-duplicate-combinations by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SQL에서 HEX에 문자열 변환 (0) | 2020.05.27 |
---|---|
[SQL] 어떻게 SSIS에서 동적 입력 및 출력 열을 매핑하는? (0) | 2020.05.27 |
[SQL] PDO-> 쿼리 ()와 PDO-> 간부의 차이 () (0) | 2020.05.27 |
[SQL] SQLite는의 GROUP_CONCAT (0) | 2020.05.27 |
[SQL] WHERE 절을 사용하여 여러 테이블 MySQL을 UPDATE 구문 (0) | 2020.05.27 |