2010-02-10 3 views
1

다른 제품 테이블에 두 개의 열이 있습니다.php mysql이 두 열을 비교하여 불일치를 비교했습니다.

tblproduct1.partno는 이전 제품 목록

tblproduct2.partno2 것은 새

partno 열이 동일한 모델 번호가 있어야하지만 그렇지 않은 것입니다.

아래 쿼리를 실행할 때 두 테이블의 카운트를 비교할 때 일치하지 않는 약 300 개의 모델 번호를 얻습니다. tblproduct2 1955 개 레코드가, 아래의 쿼리는 1638 나는 그것이 내가 일치하지 않는 모델 번호를 나열 할 수있는 방법이 있나요 1955

SELECT COUNT(partno) 
FROM tblproduct1 
    INNER JOIN tblproduct2 ON partno = partno2 

반환 기대합니까?

답변

0

값 쿼리가 올바른지 stereofrogs tblproduct2.partno2 일치가 없다고 tblproduct1.partno를 ​​나타낸다. 테이블 열이 'not null'로 정의 된 경우에도 작동합니다. 쿼리를 실행할 때 두 테이블이 섞여있는 것 같습니다.

왼쪽 테이블의 모든 행이 LEFT JOIN에 항상 있기 때문에입니다. 두 번째 테이블에 일치하는 항목이 없으면 NULL로 표시됩니다.

왼쪽 (또는 첫 번째) 테이블에 더 많은 행이있는 테이블이 있으면 위 쿼리는 원하는 결과를 생성합니다.

+0

예, 설명해 주셔서 감사합니다. null 열에 모델을 나열하려면 어떻게해야합니까? 나는 그들을 비교할 필요가있다 – jimsmith

+0

당신은 쿼리에 두 번째 열을 추가하여 예를 들어 비교할 대상을 가질 수있다. select tblproduct1.partno, tblproduct.partName ... 모두 최선 – e4c5

2
select tblproduct1.partno from tblproduct1 
    left join tblproduct2 on tblproduct1.partno = tblproduct2.partno2 
    where tblproduct2.partno2 is null 

사실

+0

partno2가 null이 아니라 그냥 일치하지 않습니다. – jimsmith

+0

죄송합니다. 질문에 대한 답변이 작동하는 것을 볼 수 있습니다. e4c5에 질문했지만 여기에서 질문을 복원합니다. 볼 수있는 방법이 있습니까? 모델 번호? tblproduct2.partno2가 null을 반환합니다. – jimsmith

관련 문제