ホームページ  >  記事  >  バックエンド開発  >  mysql クエリ ステートメントについて質問を続けます: マルチテーブル ジョイント クエリ、右側のテーブルを制限して特定の where 制限または制限を追加する方法 (対応するレコードがある場合)、それ以外の場合は制限はありません。

mysql クエリ ステートメントについて質問を続けます: マルチテーブル ジョイント クエリ、右側のテーブルを制限して特定の where 制限または制限を追加する方法 (対応するレコードがある場合)、それ以外の場合は制限はありません。

WBOY
WBOYオリジナル
2016-06-23 13:49:181169ブラウズ

タイトルの通り

6テーブルのジョイントクエリは現在、このように左結合b左結合c左結合d左結合e左結合fを使用しています

テーブル内の各レコードが次の場所でのみ検索できるようにするためbcedf テーブルのほとんどの 1 つのレコード 対応するには、いくつかの条件を追加する必要があります

しかし、where f.aaa in (0,1,2,3) などの制限を追加すると、クエリの結果は、f に対応するレコードを持つすべての結果になります。 table

becdf テーブルに対応するレコードがない場合でも、f テーブルができることを願っています


また、そのような条件が追加されたとしても、そこにあると仮定します。 becdf テーブルにはまだ多くのエントリがあります。f などの SQL ステートメントを制限できますか? テーブル A のレコードが結果に繰り返し表示されないようにするために、テーブル内の最新のエントリのみがチェックされます。

6 つのテーブル接続を通じて結果をクエリする必要があります。テーブルの設計に問題があると考えられます。 最初に関連するキーを押して、複数の遷移テーブルを形成し、テーブル間の影響を軽減できます。

6 テーブル。クエリ、これはどのくらいのデカルト積を生成しますか? とにかく、私は行き詰まっています

リアルタイムのレポートを生成する必要があるため... 多くの作業が必要です...

もちろん、これは問題があるはずですしかし、今ではそれを覆してやり直す方法はありません

1. 上で述べたように、クエリを実行するときは、まず遷移テーブルを生成し、次に遷移テーブルをクエリします

2 、元の不合理な設計をビューを介した合理的な設計、ビューをクエリします

解決済み f.id が null を追加しました

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。