/ / sql join文字列の一致 - sql、sql-server-2008、inner-join、を含む

SQL結合文字列一致 - SQL、SQL Server 2008、内部結合、包含

私は2つのテーブルを持っていると言うことができます

ID      Product
----------------
micrsoft sql
cisco


ID      Product
----------------
sql
cisco agent
flash

「フラッシュ」のみを出力として返すクエリを作成する必要があります。テーブル1と一致しないため、「cisco」と「microsoft」という単語が他のテーブルと一致するため、破棄する必要があります。

これは内部結合ですが、パターン/文字列の一致/含む。文字列は絶対一致である必要はなく、サブセットにすることもできます。例えば。一方のテーブルにシスコ、もう一方のテーブルにシスコエージェントがあります。

/ ****** SSMSからのSelectTopNRowsコマンドのスクリプト****** /

SELECT
[Product]
FROM t1 INNER JOIN t2

ON t1.Product= t2.Product
order BY Product

値が完全に一致する製品のみを満足させます。しかし、私は部分的な一致でもクエリする必要があるでしょう

回答:

回答№1は1

あなたは使うことができます like この目的のために:

SELECT t2.[Product]
FROM t2 LEFT JOIN
t1
ON t1.Product LIKE "%" + t2.Product + "%" OR
t2.Product LIKE "%" + t1.Product + "%"
WHERE t1.Product IS NULL
ORDER BY t2.Product;

パフォーマンスは良くないので、あまり多くのデータを持ってはいけません。


回答№2の場合は0

これを試して:

select Id, Product
from table2 t2
where ID Not IN ( Select IDFrom table1 )