2016-06-01 10 views
0

テーブル上で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行を返します。

私の最初のクエリがあります。

2のクエリ:

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

これが122行を返します。

条件を変更しても、2番目のクエリは常に最初のクエリよりも2番目のクエリを返します。何か案が??

+0

2番目のクエリでは、テーブル名が長すぎますか?間違ってタイプされた –

+0

、私はそれを修正しますが、それでも同じ結果です。 – Naqme

+0

EAVスキーマが問題であるもう一つの理由。 –

答えて

0

これを引き起こしてしまうまで、私は一度にJOINを削除することをお勧めします。

この7つのテーブルのすべての条件が間違っていれば、レコードはフィルタリングされますが、これは正常な動作ではありません。

+0

ご意見ありがとうございました。私はB1とB5に参加することが問題を引き起こすことを理解しますが、私はまだ理由を理解していません! – Naqme

+0

@Naqmeもし 'B1'と' B5'が問題を引き起こしているなら 'B1'は' B''NamesDastgahID'の全てを持たず、 'B5'は全て' B''ShahrID'を持たないことを意味します – sagi

+1

イェス!データを確認した後、私はその問題を理解しています。それは私を狂ったようにして、やっと私はそれを解決することができました。どうもありがとう :) – Naqme

関連する問題