2015-04-24 40 views
1

我想加入以下查詢如何加入2個查詢轉換爲1

select * from MapCountries where IndexName='SPX Index' and date(ModifiedDate)='2015-04-24'; 

select DRegion,DCountry,GICS1,GICS2,LRY,BBGLableValues from CompanyDetails where IndexName='SPX Index' and CompanyTicker='A UN' and date(ModifiedDate)='2015-04-24'; 

第二個查詢從「而(reader.read())」打響了第一查詢的2。 這佔用了很多CPU時間。有沒有辦法加入這兩個查詢來減少CPU使用率?

while (reader.Read()) 
{ 
    var regionModelTest = new RegionModelTest(); 
    ExtractCompanyDetails(Index, regionModelTest); 
    ... 
} 

ExtractCompanyDetails(Index, regionModelTest) 
{ 
    second query; 
} 

第二次查詢的CompanyTicker來自第一個查詢的一個字段。

謝謝你的幫助。

+1

,你能否告訴我們表的相關信息,請?他們如何鏈接在一起? – Uooo

+0

閱讀關於WITH運算符。您可以將第一個表格結果作爲TEMP TABLE,稍後在第二個選擇中使用它。 – MajkeloDev

+0

您在這兩個表中都有IndexName列。所以,你可以創建一個連接兩個表的查詢。無論如何,如果您希望我們爲您編寫查詢,則需要提供表結構和邏輯。 – anbuj

回答

2

你可以嘗試一個簡單的左連接:

select * from MapCountries mc 
left join CompanyDetails cd on mc.IndexName = cd.IndexName and mc.ModifiedDate = cd.ModifiedDate 
where mc.IndexName='SPX Index' and date(mc.ModifiedDate)='2015-04-24' and cd.CompanyTicker='A UN' 
+0

工作完美...謝謝一噸..希望它可以幫助減少我的CPU使用率 –