SQL での JOIN による LIKE の使用
データ分析では、テーブルの結合は複数のソースからのデータを組み合わせる一般的な操作です。レコードを照合する場合、あるテーブルの列が別のテーブルの列の一部と一致する「LIKE」操作を実行する必要がある場合があります。
テーブル A に列「Name」が含まれる例を考えてみましょう。 」、テーブル B には列「LastName」が含まれています。 「LIKE」操作を使用してこれらのテーブルを結合するには、次の条件を指定します。
<code class="sql">SELECT * FROM TableA AS A JOIN TableB AS B ON A.Name LIKE '%'+ B.LastName +'%'</code>
このクエリは、「Name」列に「LastName」列の一部が含まれる TableA のすべてのレコードと一致します。表Bより。たとえば、「Name」に「John Doe」が含まれ、「LastName」に「Doe」が含まれている場合、レコードは結合されます。
または、INSTR 関数を使用して、 JOIN 句:
<code class="sql">SELECT * FROM TableA AS A JOIN TableB AS B ON INSTR(B.LastName, A.Name) > 0</code>
このクエリは、TableA の "Name" 列が TableB の "LastName" 列内のどこかに出現するレコードとも一致します。
さらに、LIKE を使用することもできます。同じ結果を得るには、CONCAT 関数を使用して演算子を使用します。
<code class="sql">SELECT * FROM TableA AS A JOIN TableB AS B ON B.LastName LIKE CONCAT('%', A.Name ,'%')</code>
これらすべてのオプションで、大文字と小文字の区別の問題を避けるために、列の値を比較する前に大文字に変換することを検討することをお勧めします。
最終的に、最も効率的なソリューションは、データベース管理システムによって生成される特定のデータと実行計画によって異なります。さまざまな方法を試して、特定のケースに最適なアプローチを決定してください。
以上がSQL で LIKE 演算子と JOIN を使用して、部分的な文字列比較に基づいてレコードを照合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。