【发布时间】:2016-06-01 07:23:53
【问题描述】:
我在一个表上运行 2 个查询,它们在“Where”子句中是相同的,所以我相信它们应该返回相同的值。
我的第一个查询是:
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 行。
第二个查询总是返回比第一个多双的行,即使我更改了条件。有什么想法吗??
【问题讨论】:
-
在你的第二个查询中,你的表名是不是太长了?
-
那个打错了,我改正了,还是一样的结果。
-
EAV 架构存在问题的另一个原因。
标签: mysql join indexing entity-attribute-value