私の SQL の知識はかなり限られているので、ご容赦ください。
別のテーブルのフィールドと一致しないフィールドの 1 つに基づいて、あるテーブルの行を返そうとしています。
私のテーブルの 1 つには、URL とサイト フィールドがあります (テーブル A など)。もう 1 つのテーブルには、サイトの名前であるテーブル B を使用して、いくつかのサイトが一覧表示されます。
たとえば、テーブル A の URL フィールドは ' http://google.it/aaa ' で、名前フィールドは 'google' です。
テーブル BI には、「サイト」および「名前」フィールドの下に格納されたサイトのリストがあります。以下の例:
1 つのエントリ: サイト google.co.uk
名前はグーグル
別のエントリ: サイト google.fr
名前はグーグル
3 番目のエントリ: サイト bing.com
名前ビング
URLフィールドがテーブルBの「サイト」フィールドと一致しないテーブルAの値を返したい.これを行うには、テーブルAの「名前」フィールドを使用して、テーブルの「サイト」値を検索する必要がありますB - 一致するものがない場合は、エントリを返します。したがって、この場合、私の URL は「http://google.it/aaa」であるため、テーブル B に google.it のエントリがあるかどうかを確認すると、何も見つからないため、それが返されます。
私は MySQL db を使用していますが、これら 2 つのテーブルは異なるスキーマにあります。私はいくつかのSQLを試してみましたが、ここに私が思いついたものがあります:
SELECT tablea.url, tablea.name FROM schema1.tablea 内部結合 schema2.tableb ON tablea.url NOT LIKE ('%' || tableb.site || '%')
前もって感謝します