MYSQL은 두 열에서 DISTINCT 값을 선택합니다.
데이터베이스에서 고유 한 값을 선택하고 싶습니다. 간단한 예를 보여 드리겠습니다.
표:
foo bar
--- ---
a c
c f
d a
c a
f c
a c
d a
a c
c a
f c
맞습니다, 내 SQL이 SELECT DISTINCT foo, bar from table
. 내 결과는 다음과 같습니다.
foo bar
--- ---
a c
c f
d a
c a
f c
그러나 문제는 반복이 a c
/ c a
단지 다른 순서로 있다는 것입니다. 이 항목을 선택하고 싶지 않습니다. 두 열에서 고유 한 값을 원합니다. 도와주세요!
매우 사악하고 사악합니다.
select distinct
least(foo, bar) as value1
, greatest(foo, bar) as value2
from table
GROUP BY를 사용하는 것은 어떻습니까?
SELECT foo,bar FROM my_table GROUP BY foo,bar
어때 :
SELECT DISTINCT a.foo,a.bar FROM table a
LEFT JOIN table b ON a.foo=b.bar and a.bar=b.foo
WHERE b.foo IS NULL AND b.bar IS NULL
당신은 대칭 클로저와 반대되는 것을 요구하고 있습니다 (특별한 이름이 있는지 모르겠습니다; 클로저가 아니기 때문에 비대칭적인 것입니다). 두 개의 다른 열을 비교해야하는 것과 같은 클로저 및 클로저의 경우 조인을 사용할 수 있습니다. 두 행이 여러 열에 복제 될 때 두 행을 필터링하지 않도록하려면 첫 번째 행이 더 적은 쌍을 포함하는 것과 같이 반복을 구별하고 그중 하나를 포함하는 방법이 필요합니다.
SELECT DISTINCT t1.foo, t1.bar
FROM `table` t1
LEFT JOIN `table` t2
ON t1.foo=t2.bar AND t1.bar=t2.foo
WHERE t2.foo IS NULL OR t1.foo <= t1.bar;
SELECT
foo, bar
FROM tableX
WHERE foo <= bar
UNION
SELECT
bar, foo
FROM tableX
WHERE bar < foo
SELECT DISTINCT foo, bar FROM table WHERE
CONCAT(',',foo,bar,) NOT IN ( SELECT CONCAT(',',bar,foo) FROM table )
이것은 나를 위해 작동합니다.
SELECT DISTINCT
LEAST(sub.foo, sub.bar) as value_1
, GREATEST(sub.foo, sub.bar) as value_2
FROM
(SELECT
a.foo
,a.bar
FROM
table a
JOIN
table b
on a.foo = b.bar
and a.bar = b.foo) sub
그래서 두 개의 필드를 단일 SQL 검색 결과 행으로 결합하려는 것을 이해했습니다. 여기에서 대부분의 답변이 매우 혼란 스럽습니다.
이것은 내가해야 할 때 항상하는 방법입니다 (여러 행과 여러 테이블로 확장 할 수 있음).
SELECT a.field1 FROM (
SELECT foo AS field1 FROM tableX
UNION
SELECT bar AS field1 FROM tableX
) a
OR
SELECT DISTINCT a.field1 FROM (
SELECT foo AS field1, conditions FROM tableX
UNION ALL
SELECT bar AS field1, conditions FROM tableX
) a WHERE a.conditions=1 (added extra conditions to filter out some results)
ReferenceURL : https://stackoverflow.com/questions/6744759/mysql-select-distinct-values-in-two-columns
'program tip' 카테고리의 다른 글
Visual Studio에서 코드 개요를 표시하는 방법은 무엇입니까? (0) | 2021.01.10 |
---|---|
RSpec / RoR로 AJAX 요청을 어떻게 테스트합니까? (0) | 2021.01.10 |
Fold 및 foldLeft 메서드 차이 (0) | 2021.01.10 |
구조체 메서드에서 필드를 설정하고 가져 오는 방법 (0) | 2021.01.10 |
IOS의 원형 진행률 표시 줄 (0) | 2021.01.10 |