私は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 )