다음과 같은 문제가 있습니다.Select는 동일한 행을 여러 번 반환합니다.
DB에는 두 개의 테이블이 있습니다. 첫 번째 테이블의 한 열에있는 값은 두 번째 열의 두 개의 다른 열에 나타날 수 있습니다.
TABLE_A : 열 Print_group 표 _B : 열 Print_digital 및 Print_offset
다른 행과 Table_A의 Print_group 열에서의 값은 하나 개의 행에 표시 될 수있는 다음
그래서 구성은 Table_B하지만 다른 열에.
SELECT DISTINCT * FROM Table_A
INNER JOIN B ON (Table_A. Print_digital = Table_B.Print_group OR
Table_A.Print_offset = Table_B.Print_group)
문제는이 쿼리는 Table_A 두 번에서 같은 행을 반환한다는 것입니다 :
나는 다음과 같은 쿼리를 가지고있다.
내가 뭘 잘못하고 있니? 올바른 쿼리는 무엇입니까?
는 당신의 도움을 주셔서 감사합니다 내가 제대로 질문을 이해 해요 경우, 당신은 단지Table_A
에서 온 귀하의 필드를 명확히 할 필요가
조인 할 수 있습니다. 예제 데이터를 보여줄 수 있습니까? –
테이블 A와 테이블 B를 조인하고 테이블 B에 더 많은 열이있는 경우 B를 조인 할 때마다 테이블 A의 행을 복제합니다.이 경우 테이블 A에서 중복 된 행이 비어 있었습니까? –
그래서 Table_A의 Print_group 열은 첫 번째 행에 1, 두 번째 행에 2라는 값을 갖고 있다고 가정 해 봅시다. Table_B에서는 단 하나의 행 (지금은 간단하게 유지)입니다. Table_B의 Print_digital 열에는 Table_A의 첫 번째 행에있는 값 1이 들어 있고 Table_B의 Print_offset 열에는 값 2가 있습니다 (값은 Table_B의 같은 행에 있습니다). 위에서 언급 한 쿼리를 실행하면 두 행을 포함하는 결과 집합이 반환됩니다. 두 번 반환 된 Table_B 행 중 하나입니다. – user2852877