Approved = 'yes' 대 Approved = 'no' 개의 행을 하나의 테이블에 처리하기 위해 MySQL 쿼리를 작성하려고했습니다. - 몇 가지 방법을 시도했습니다 (자체 조인 및 임시 테이블 만들기/쿼리 포함). 그리고 내가 뭘하려고해도 잘못된 데이터 집합 출력으로 끝납니다. diffVal의 비교 행 사이의이 동일하지 않은 경우이 경우 하나의 테이블에서 차이점 보고서를 선택하십시오. MySQL
SELECT DISTINCT a.*
FROM myTable a
JOIN myTable b
ON a.apples = b.apples
AND a.bananas = b.bananas
AND a.oranges = b.oranges
WHERE (
a.Approved = 'no'
AND b.Approved = 'yes'
) AND (
a.diffVal1 <> b.diffVal1
OR a.diffVal2 <> b.diffVal2
OR a.diffVal3 <> b.diffVal3
)
는, 내가 원하는, 같은 사과, 바나나, 오렌지가 행을 비교하기 위해 노력하고 ... 그리고있어 출력되는 세트의 해당 행을 포함시킵니다. 나는 이것이 왜 작동하지 않는지 잘 모르겠지만 이것을 실행할 때마다, 동일한 사과, 바나나, 오렌지가있는 '예'항목이 있는지 여부에 관계없이 모든 '아니오'항목을 포함합니다. diffVals. (거의 diffVal 섹션을 모두 무시하고있는 것처럼)
나는 그것이 바보 같다고 생각하지만, 여러분 중에 의견이 있으면 크게 고맙게 생각합니다.
채워진 표
위의 언급 쿼리 당신이 볼 수 있듯이
5 red yellow orange a H c no
16 red yellow orange d d d no
4 red yellow orange a b c no
13 red yellow orange a b c no
14 red yellow orange a b c no
15 red yellow orange a b c no
을 실행 한
id apples bananas oranges diffVal1 diffVal2 diffVal3 Approved
1 red yellow orange a b c yes
2 red yellow orange a b c yes
3 red green orange a b c yes
4 red yellow orange a b c no
5 red yellow orange a H c no
6 green yellow orange a H c no
7 red yellow orange a b d yes
8 red yellow orange a b e yes
9 red yellow orange a b c yes
10 red yellow orange a b c yes
11 red yellow orange a b c yes
12 red yellow orange a b c yes
13 red yellow orange a b c no
14 red yellow orange a b c no
15 red yellow orange a b c no
16 red yellow orange d d d no
실제 결과 빨간색, 노란색, 주황색이 경우, 그것은 출력 행을 포함 있어요 diffVal에 대해 abc가있는 빨간색 노란색 주황색의 '예'항목이 있음에도 불구하고 diffVals에 대한 abc 에스.
예상 결과
5 red yellow orange a H c no
16 red yellow orange d d d no
- 포맷에 대한 나의 사과. 나는 스크린 샷을 추가하려했지만 새로운 것이기 때문에 스택 오버 플로우로 인해 이미지를 추가 할 수 없었다.
정확한 원하는 출력이 무엇 테이블 구조 및 샘플 입력과 출력 – Sathish
을 보여입니다 네가 얻을 거라고 기대하는거야? – peterm
첫 번째 두 개의 행이 유일한 행 출력이어야합니다 (내가 시도한 것을 기반으로). 마지막 4 개의 행은 기존의 '예'행과 동일한 값을 가진 모든 행이므로 출력하지 않아야합니다. – user3863111