ホームページ >データベース >mysql チュートリアル >INNER JOIN と IN 句を使用して MySQL で INTERSECT をシミュレートする方法

INNER JOIN と IN 句を使用して MySQL で INTERSECT をシミュレートする方法

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-03 19:21:40570ブラウズ

How to Simulate INTERSECT in MySQL Using INNER JOIN and IN Clause?

内部結合と 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 サイトの他の関連記事を参照してください。

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