-3

私のテーブルには、例えば

CountyID、County、CityIDは、countyテーブルとcityテーブルにあります。たとえば、テーブルがあります。

市IDと市

郡テーブルから郡を取得し、郡テーブルの都市IDに基づいて都市を取得するレポートを作成するにはどうすればよいですか。

ありがとう

4

3 に答える 3

1

これは非常に基本的な質問なので、コードではなく基本的な答えを示します。

テーブルに互いに「一致する」列がある場合、それらの共通点でそれらを結合し、まるで1つのテーブルであるかのように結果をクエリできます。

必要なものに基づいて、さまざまなタイプの結合もあります。たとえば、結合しているテーブルの1つの行の一部に、対応する一致がない場合があります。

都市に対応する郡があることが確実な場合は、一致する列CityIDで2つのテーブルを内部結合し、結果をクエリしてみてください。

于 2012-04-16T20:27:44.140 に答える
0

両方のテーブル間の明らかな共通リンクはCityIDであるため、それに参加することになります。データが間違って整理されていると思いますが、CountryテーブルのCityIDではなくCityテーブルにCountryIDを配置します。次に、選択したCountryIDに基づいて、それに基づいてCityテーブルのクエリを制限できます。

于 2012-04-16T20:28:38.267 に答える
0

Bridgeの回答に照らして従うと、SQLは明らかに初めてであり、SQLの記述方法を掘り下げる場所はたくさんあります。ただし、自分でトレーニングする必要がある最も基本的な基本は、あいまいさを防ぐために常にテーブル名またはエイリアスを適用し、言語の予約語と見なされる可能性のある列名の使用を避けるようにすることです...それらは常に人々を噛むように見えます。

とはいえ、クエリの最も基本的なものは

select
      T1.field1,
      T1.field2,
      etc with more fields you want
   from
      FirstTable as T1
   where
      (some conditional criteria)
   order by
      (some column or columns)

ここで、複数のテーブルを処理する場合は、JOINが必要です...通常、INNERまたはLEFTが最も一般的です。内部手段は、両方のテーブルで一致する必要があります。LEFTは、右側の一致に関係なく、左側のテーブルと一致する必要があることを意味します...例:

select
      T1.Field1,
      T2.SomeField,
      T3.MaybeExistsField
   from
      SomeTable T1
         Join SecondTable T2
            on T1.SomeKey = T2.MatchingColumnInSecondTable
         LEFT JOIN ThirdTable T3
            on T1.AnotherKey = T3.ColumnThatMayHaveTheMatchingKey
   order by
      T2.SomeField DESC,
      T1.Field1

これらの例から、テーブルとそれらの相互の関係を結果に簡単に組み込むことができるはずです...

于 2012-04-16T21:46:27.903 に答える