시간 이후 솔루션을 찾고 있지만 고양이가 그것을 얻습니다.더블 크로스 결과없이 SQL 자체 조인
내 테이블 :
ID name value1 value2
1 Meyer 20 _
2 Schmitt 20 _
3 Berger _ 20
4 Chief _ 20
내 쿼리 :
SELECT A.ID, A.name AS nameA, B.name AS nameB, A.value1
FROM table AS A INNER JOIN table AS B
ON A.value1 = B.value2
결과 :
ID nameA nameB value1
1 Meyer Berger 20
2 Schmitt Chief 20
,536,913,632 :
ID nameA nameB value1
1 Meyer Berger 20
1 Meyer Chief 20
2 Schmitt Berger 20
2 Schmitt Chief 20
이 같아야합니다 10
이 결과를 얻으려면 어떻게해야합니까?
나는 또한 GROUP BY A.name을 시도하지만 잘못된 결과를 얻을 :이 가입 기준 A.value1 = B.value2
하고 입력 테이블에 따르면
ID nameA nameB value1
1 Meyer Berger 20
2 Schmitt Berger 20
도움이? 데이터베이스 정규화에 대해 읽어야합니다. – fluffy
나는 당신이 기록을 어떻게 관련시키고 있는지 이해하지 못하고있다. 'value1'과'value2'의 값이 모두 20이라면, "Meyer"는 "Berger"와 "Schmitt"만이 "Chief"에 속한다고 어떻게 결정합니까? –
이 작업을 수행하려면 다른 기준이 필요합니다. 예를 들어, 쿼리가 Meyer Berger 만 반환하고 Meyer Chief는 반환하지 않는 이유는 무엇입니까? – Phil