私はleft join
2つのテーブルにしたいです。私の問題は、 "右"のテーブルがデータベースに存在しないということです。私はそれをクエリ中に作成する必要があります。より詳細には、「右」テーブルは、既存のテーブルから特定の行を抽出することによって得られる(select ... where ...
)。参加前に選択できますか?
私は、解決策が最初にjoin
、次にselect
になると考えました。私はそれがelect
とjoin
よりちょうど遅くなると思ったが、私はそれがまったく機能しないことに気付いた。例えば
:
左表:
| Dog | 1 |
| Cat | 0 |
右表:
| Dog | Paul | yes |
| Cat | Carin | no |
私は2番目の列が "カリン" を有する第2のテーブルからの行のみを使用したいです。私は私が得るそれらの行を選択した後、参加するのであれば、:
| Dog | 1 | Null | Null|
| Cat | 0 | Carin | no |
しかし、私が最初に参加する場合は、私が取得:
| Dog | 1 | Paul | yes |
| Cat | 0 | Carin | no |
そして、私はカリンと行を選択するならば、私が取得:
| Cat | 0 | Carin | no |
したがって、結果が異なることがわかります。最初のケースでは2行、2番目のケースでは1行しか得られません。
だから、参加する前に選択することは可能ですか?
これは私が必要としていたものです。どうもありがとう! – Roman
実際、このクエリはとても自然なので、このようにしなければならないと私は推測できます(しかし、私はしませんでした)。 – Roman
それについて自分自身を打ち負かすことはありません。誰もがどこかから始まり、専門家でさえその知識にギャップがあります。つまり、試行錯誤は学ぶのに最適な方法です。 – AgentConundrum