2011-04-21 9 views
0

내가 가지고있는 쿼리 조인을 377 행대한 설명은 반환이 쿼리

Select Cm.Customerid,Cm.Customername,Ad.Addressid,Ad.Addressline1, 
Stm.Statename,Ctm.Cityname,Dm.Districtname 
From Crm.Customers Cm 
inner join Crm.Customeraddress Ad on Ad.Customerid=Cm.Customerid 
Inner Join Ehis.Statemaster Stm On Stm.Stateid=Ad.Stateid 
Inner Join Ehis.Citymaster Ctm On Ctm.Cityid=Ad.Cityid 
inner join Ehis.Districtmaster dm on Dm.Districtid=Ad.Districtid 

하지만 난이 (즉)에 내 쿼리가 반환하지 않습니다

Select 
Cm.Customerid,Cm.Customername,Ad.Addressid,Ad.Addressline1, 
Stm.Statename,Ctm.Cityname,Dm.Districtname 
From Crm.Customers Cm 
inner join Crm.Customeraddress Ad on Ad.Customerid=Cm.Customerid 
inner join crm.agreements ag on ag.customerid=cm.customerid 
Inner Join Ehis.Statemaster Stm On Stm.Stateid=Ad.Stateid 
Inner Join Ehis.Citymaster Ctm On Ctm.Cityid=Ad.Cityid 
inner join Ehis.Districtmaster dm on Dm.Districtid=Ad.Districtid 

가입 하나 더 추가하면 모든 행. statemasters, n 도시의 주인을 위해 내부 조인을 사용하는 데 문제가 있습니까? Pls도 똑같이 설명합니다.

답변

0

데이터를 반환하는 원래 쿼리에있는 문제이므로 statemaster, citymaster 또는 districtmaster이 나타나지 않습니다.

추가 라인 (아래)이 범인 인 것처럼 보입니다.

inner join crm.agreements ag on ag.customerid=cm.customerid

아마도 A가 customers 테이블 customerid 일치하여 agreements 테이블에 레코드가 없다.

은 다음 agreements의 데이터를 확인해야합니다, 당신은 다시 377 개 기록을 얻을 경우

left join crm.agreements ag on ag.customerid=cm.customerid

에 그 라인을 바꿀 수, 그런 경우가 증명합니다.

+0

** ** richaux ** : 예. 'agreement'테이블에 '고객'테이블과 일치하는 stateid 데이터가 없습니다. 이제 교착 상태가 해결됩니다. – Bharath

관련 문제