ホームページ >データベース >mysql チュートリアル >MySQL の複数のテーブルのデータを効率的に交差させる方法は?
MySQL でのデータの交差
問題:
MySQL では、ユーザーはメソッドを必要としますの複数のフィールドに基づいて、2 つのテーブル「レコード」と「データ」のデータを交差させます。 「レコード」テーブル。別の DBMS で INTERSECT を使用した前の例では、満足のいく結果が返されませんでした。
解決策:
MySQL は、INTERSECT 演算子を直接サポートしていません。ただし、目的の機能を実現するための別のアプローチもあります。
1 つのオプションは、内部結合を使用することです。
SELECT DISTINCT records.id FROM records INNER JOIN data d1 on d1.id = records.firstname AND d1.value = "john" INNER JOIN data d2 on d2.id = records.lastname AND d2.value = "smith"
このクエリは、「レコード」テーブルを「」の 2 つのインスタンスと結合します。 data" テーブルを使用して、両方の結合に一致する値を持つ行をフィルタリングします。
もう 1 つの代替方法は、in です。句:
SELECT DISTINCT records.id FROM records WHERE records.firstname IN ( select id from data where value = 'john' ) AND records.lastname IN ( select id from data where value = 'smith' )
このアプローチでは、「firstname」フィールドと「lastname」フィールドが「data」テーブルの値と一致する行を「record」テーブルから選択します。
これらのメソッドは効果的な方法を提供します。共通の基準に基づいて複数のテーブルの行を結合することで、MySQL 内のデータを交差させます。
以上がMySQL の複数のテーブルのデータを効率的に交差させる方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。