誰かがこれで私を助けることができるかどうか疑問に思っています。私は2つのテーブルを持っています。テーブル A には数百万の行が含まれており、テーブル全体を検索します。テーブル B には約 5 万行が含まれており、再びテーブル全体を検索します。以下のクエリを使用しています。
SELECT t1.ID as [ID], count(*) as [Total]
FROM table1 t1
RIGHT JOIN table2 t2 ON t1.data LIKE '%' + t2.field3 + '%'
AND t1.ID = t2.ID
WHERE t1.ID not LIKE ''
GROUP BY t1.ID, t1.datetime
私が右結合を使用している理由は、私が理解しているように、t2 (私が望む) からすべてのレコードを取得し、t1 からそれらに一致するレコードのみを取得するためです。また、'AND t1.ID = t2.ID' を SELECT ステートメントに追加しました。これにより、クエリが高速化される (t2 の ID と一致しない ID を検索しない) と想定していましたが、これは私の論理が完全に間違っていない限り、RIGHT JOIN。
また、JOIN の背後にあるロジックを説明できれば、table1 のデータ列には多くの「もの」が含まれており、そのどこかに t2.field3 の内容が正確に含まれている必要があります。たとえば、t1.data = '^ABCD^00dasdas ^£ldasl32^XL0005^' と t2.field3 には 'XL0005' が含まれます。
どんな助けでも大歓迎です。
ありがとう