私は3つのテーブルを持っています。母集団データテーブル、郡テーブル、および状態テーブルを含む。私は下のSQLを実行すると、私は不正な結果セットを取得します。 SQLはウィスコンシン州の55の郡を返します。私は州に72があることを知っています。 Countiesテーブルに行き、以下の1行のSELECT文を実行すると、72の郡が得られます。このSQLはなぜ不正な結果セットを返しますか?
私は同じ郡の倍数を取得していますが、母集団の詳細が異なるため、私は結合ステートメントの問題を示しています。私は、結合ステートメントのすべての組み合わせを試したと思うが、問題を解決することができませんでした。ジョインの1つの組み合わせを使用して、私は86の郡で返された結果セットにできました。それも間違っています。
ありがとうございます!
- 正しい郡を返します。 SELECT * FROM counties WHERE stateId = 'D14B7CD0-145F-4B84-9533-0BB3B2F5A5B5'
-- returns incorrect counties.
SELECT this.POPULATION, this.LATITUDE, this.LONGITUDE, this.CountyId, st.NAME AS StateName, cty.Name AS CountyName
FROM PopulationData AS this
INNER JOIN Counties AS cty ON this.CountyId = cty.Id
INNER JOIN States AS st ON cty.StateId = st.Id
WHERE (st.Name = 'wisconsin')
ORDER BY CountyName
データのサンプルと両方の結果セットが役立ちます。あなたは回答を与えるのに十分なデータを提供していません。 – Oded
後者のクエリはさらに2つのテーブルを結合するので、いくつかの国(17)がpopulationDataまたはstatesテーブルに関係がないように見える – sll
PopulationDataテーブルには各郡ごとに1つの行が含まれていますか? PopulationDataに対応する行がない郡がある場合、それらはクエリによって返されません。PopulationDataに複数の行を持つ郡がある場合、クエリ内に複数の行が返されます。 – JSR