すべてのドライバーは、それらの間を移動する都市のリストを持っています(テーブル "mycities")。開始都市とターゲット都市が私の都市リストにあるジョブを選択するSqlクエリ
開始都市とターゲット都市がリストにあるジョブリスト(JOBSテーブルから)を表示したいと思います。私は街を開始し、同時に都市をターゲットの両方をチェックするためにテーブルを結合する方法が混乱しています:
私はOR演算子を使用した場合、結果は両都市をカバーしていないと私はAND演算子を使用している場合、結果は希望空である:
を。あなたは大量のデータが速いことを知っていますか? –
いいえ、とにかく、パフォーマンスの問題がない限り、私はいつも簡単なクエリを使用します。したがって、市のテーブルからのデータが必要ない場合は、参加しないでくださいが、 'IN 'だけを参照してください。弱いオプティマイザを持つデータベースの中には、 '存在しているものはどこに存在するのですか(選択したものから+ mycities.city = jobs.startcityから選択するもの)'というものがあります。 'IN'が遅すぎるときやあなたが好きなときには' EXISTS'を使います。パフォーマンスの問題がある場合にのみ、結合を使用します。 –