3 개의 테이블이 있습니다. 하나는 사용자 이름, 하나는 데이터 묶음, 다른 하나는 ID를 통해 2 개의 테이블을 연결하는 이름입니다. 내가 INNER JOIN과 3을 결합하려고 시도 할 때, 나는 많은 행을 얻는다. 예를 들어, 데이터 테이블에 2000 개의 행만있는 경우, 내부 조인을 사용하여 3 개의 테이블을 연결하면 100,000 개의 행이 출력됩니다. 내 데이터 테이블에 내 사용자 이름 테이블보다 많은 행이 있고 내부 조인이 제대로 실행되지 않는다는 사실과 관련이 있습니까? 다른 테이블보다 많은 행을 가진 테이블을 내부 조인 할 수 있습니까? 두 개의 개별 항목에 대해, 존 스미스가 두 번 나열됩니다 볼 수 있듯이INNER JOIN을 사용할 때 중복 결과 얻기
-Names-----------Numbers-----------Item---------------Cost---
John Smith 111-1111 Pencils 100.75
Joe Stevens 222-2222 Paper 35.34
Mike Jones 333-3333 Staples 23.86
John Smith 111-1111 Boxes 11.76
:이 데이터베이스의 CLEARITY
에 대한
편집은 내가 이렇게 보이는 데이터를 가져옵니다. 나는 이것을 최적화하고 싶지만 원래의 데이터를 분리하고 하나의 반복으로 자신의 테이블에 것들을 넣고 싶습니다.
ID---Name--- ID----Numbers ID---Items------Cost
1 John Smith 1 111-1111 1 Pencil 100.75
2 Joe Stevens 2 222-2222 2 Paper 35.34
3 Mike Jones 3 333-3333 3 Staples 23.86
4 Boxes 11.76
이제 모든 것이 최적화되었으므로 필자는 John Smith와 연필 및 상자를 모두 사용할 수있는 쿼리를 실행할 수 있어야합니다. 나는 그들이에있을 필요가 올바른 순서 ID를 보유하고 링크 테이블을 만든 이유입니다. 이제
Name.ID Number.ID Item.ID
1 1 1
2 2 2
3 3 3
1 1 4
내가 원래 데이터 덤프를 재현 보고서를 실행하기를 원한다면, 내가 쿼리를 실행할 것이라고 내부 조인으로 3 개의 테이블을 조인합니다. 그러나 문제는 단순히 데이터를 출력해야하는 대신 많은 수의 중복 된 결과를 얻고 있다는 것입니다. 나는 이런 식으로 뭔가를 얻을 :
-Names-----------Numbers-----------Item---------------Cost---
John Smith 111-1111 Pencils 100.75
John Smith 111-1111 Pencils 100.75
John Smith 111-1111 Pencils 100.75
John Smith 111-1111 Pencils 100.75
John Smith 111-1111 Pencils 100.75
Joe Stevens 222-2222 Paper 35.34
Joe Stevens 222-2222 Paper 35.34
Joe Stevens 222-2222 Paper 35.34
Joe Stevens 222-2222 Paper 35.34
Mike Jones 333-3333 Staples 23.86
Mike Jones 333-3333 Staples 23.86
Mike Jones 333-3333 Staples 23.86
Mike Jones 333-3333 Staples 23.86
John Smith 111-1111 Boxes 11.76
John Smith 111-1111 Boxes 11.76
John Smith 111-1111 Boxes 11.76
John Smith 111-1111 Boxes 11.76
원하는 출력은 단순히 다음과 같습니다
-Names-----------Numbers-----------Item---------------Cost---
John Smith 111-1111 Pencils 100.75
Joe Stevens 222-2222 Paper 35.34
Mike Jones 333-3333 Staples 23.86
John Smith 111-1111 Boxes 11.76
을 시도합니다. 접합부 테이블은 하나 이상의 레코드가 다른 수의 레코드와 연관 될 수 있도록 설계 되었기 때문에 두 개의 이름은 각각 10 개의 2 x 10 레코드와 같은 데이터를 가질 수 있습니다. – Fionnuala
흠, 그래서 당신이 물건을 서로 연결하는 대신 말하고 있는데, 그들은 곱해지고 있습니까? –
아니요, 각 이름에 유효한 데이터가 두 개 이상 있습니다. – Fionnuala