ホームページ > データベース > mysql チュートリアル > 左結合接続を使用して mysql の重複問題を解決する方法

左結合接続を使用して mysql の重複問題を解決する方法

王林
リリース: 2023-06-02 13:13:41
転載
2860 人が閲覧しました

    Mysql は左結合を使用して繰り返し接続します。

    問題の説明

    結合クエリを使用する場合、たとえばテーブル A がメインです。 table 、テーブル B への接続を残します。クエリ結果にはテーブル A と同じ数のレコードが含まれることが期待されます。ただし、クエリされたレコードの総数がレコードの総数よりも多くなる結果が生じる可能性があります。テーブル A. で、クエリ結果が表示されると、いくつかの列が繰り返され、簡単に言えば、デカルト積が生成されます。

    質問例

    テーブル A はユーザー テーブル (ユーザー) で、フィールドは次のとおりです:

    ID name userid
    1 aaaa 10001
    2 bbbb 10002
    3 ccccc 10003

    B テーブルは最初のタイプの製品テーブル (product) であり、フィールドは次のとおりです:

    ID title time userid
    1 タイトル 1 2014-01-01 10002
    2 タイトル 2 2014-01-01 10002
    3 タイトル 3 2014-01-01 10001
    4 タイトル 4 2018-03-20 10002
    5 Title 5 2018-03-20 10003

    このとき、以下のSQLを使用して実行したところ、

    selecct * from user left join product on user.userid=product.userid;
    ログイン後にコピー

    左結合接続を使用して mysql の重複問題を解決する方法

    # #実行結果は実際にはユーザー テーブルの総レコード数よりも多かった 多くの

    問題の解決策

    実は、この問題は目の肥えた人なら一目でわかります。左結合のキーワードは積テーブル内で一意ではないため、一意でないデータのこの部分によってデカルト積が生成され、予想よりも多くの実行結果が得られます。

    解決策は、一意のキーを使用して関連付けてクエリをリンクすることです

    mysql が左結合を使用すると、右側のテーブルのデータに重複したデータが含まれます

    LEFT JOIN キーワードは、右側のテーブル (table_name2) に一致する行がない場合でも、左側のテーブル (table_name1) のすべての行を返します。このとき、右側のテーブル(table_name2)にデータが無い場合、または on キーワードで絞り込んだ後にデータが 1 つしかない場合は問題ありません。

    今回話したいのは、右側のテーブル(table_name2)のデータが重複した場合(ビジネスにおける完全な重複)の対処方法です。

    右テーブル(table_name2)をonキーワードで絞り込み、重複データが現れた場合、このとき見つかるデータは、右テーブルデータ*重複データ、右テーブルのその他の条件データ、必要なデータの項目数が異なります。

    私の解決策は、最初にフィルター フィールド グループに従って正しいテーブル (table_name2) をクエリし、同じデータをフィルターで除外してから、その結果を関連付けの正しいテーブルとして扱うことです

    前面脑补 
    LEFT JOIN (SELECT MODEL_CODE,MODEL_NAME from tm_model GROUP BY MODEL_CODE) tm on tav.model_code = tm.MODEL_CODE 
    后面脑补
    ログイン後にコピー

    以上が左結合接続を使用して mysql の重複問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    関連ラベル:
    ソース:yisu.com
    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    最新の問題
    人気のチュートリアル
    詳細>
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート