2011-04-21 30 views
0

我加入了一個查詢返回377行澄清PL/SQL在此查詢

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 

我的查詢沒有返回任何行。在使用內部連接的情況下,州議員,城市n區主人是否存在任何問題。請澄清相同。

回答

0

該問題似乎與statemaster,citymasterdistrictmaster不一樣,因爲這些位於原始查詢中返回的數據。

附加行(下面)看起來是罪魁禍首。

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

大概有上agreements表中沒有記錄與上customers表匹配customerid

爲了證明是這樣的話,你可以該行更改爲

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

如果你得到你的377名的記錄,那麼你就需要檢查agreements數據。

+0

@ ** richaux **:是的,我發現'協議'表沒有與'customer'表匹配的stateid數據,所以現在解決了死鎖問題。 – Bharath 2011-04-21 12:50:18