加入对表的查询

时间:2016-06-01 07:23:53

标签: mysql join indexing entity-attribute-value

我在桌面上运行了2个查询,这两个查询在&#34中都是相同的。其中"条款,所以我相信他们应该返回相同的值。

我的第一个问题是:

select B.NameDastgahID, B.ZarfiateHamleBar, B.SherkateSazande, B.BisimHF, B.KanalBisimKhodroyi, B.ShomarePelak, B1.NameDastgahTitle, B2.NameKhodroTitle, B3.NoeKhodroTitle, B4.KarbarieKhodroTitle, B5.ShahreKhodroTitle, B6.cheraghgardanValue, B7.bisimHFTitle 
from dw.bohran_fct_etelaatenavegankhodroyi B
INNER JOIN dw.excel_dim_namedastgah B1 using (NameDastgahID) 
INNER JOIN dw.excel_dim_namekhodro B2 using (NameKhodroID) 
INNER JOIN dw.excel_dim_noekhodro B3 using (NoeNavganID) 
INNER JOIN dw.excel_dim_karbariekhodro B4 using (KarbariID) 
INNER JOIN dw.excel_dim_shahrekhodro B5 using (ShahrID)
INNER JOIN dw.excel_dim_cheraghgardan B6 using (CheraghGardan)
INNER JOIN dw.excel_dim_bisimhf B7 using (bisimHF)
where NameKhodroID = '630'

并返回61行。

第二个问题:

select *
from dw.bohran_fct_etelaatenavegankhodroyi 
where NameKhodroID = '630' 

这会返回122行。

第二个查询总是返回比第一个查询多的行,即使我更改条件也是如此。有什么想法??

1 个答案:

答案 0 :(得分:0)

我建议一次删除一个JOIN,直到找到导致此问题的那个。

这并不奇怪,它的正常行为是,你加入了7个不同的表,如果这7个表中的任何条件都不正确,那么记录就会被过滤掉!