ホームページ >データベース >mysql チュートリアル >INNER JOIN と IN 句を使用して MySQL で INTERSECT をシミュレートする方法
内部結合と IN 句を使用した MySQL でのデータの交差
MySQL では、INTERSECT 演算子は、複数のフィールド間で複数のフィールドを直接比較するために使用できません。テーブル。ただし、内部結合または IN 句を使用して同様の機能を実現できます。
内部結合の使用:
内部結合構文を使用すると、一致する値に基づいて行をフィルタリングできます。別のテーブルから。たとえば、名が「john」、姓が「smith」の両方を持つレコードを検索するには、次のクエリを使用できます。
SELECT DISTINCT records.id FROM records INNER JOIN data d1 on d1.id = records.firstname AND data.value = "john" INNER JOIN data d2 on d2.id = records.lastname AND data.value = "smith"
Using IN Clause:
もう 1 つの方法は、IN 句を使用することです。これにより、値が値のセットと一致するかどうかを確認できます。 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' )
内部結合と IN 句の両方のメソッドは、MySQL でデータを交差させる効率的な方法を提供します。方法の選択は、クエリの特定の要件によって異なります。
以上がINNER JOIN と IN 句を使用して MySQL で INTERSECT をシミュレートする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。