次のタスクを実行するためのMySQLクエリの作成に問題があります。ここで説明した同様のクエリを見たことがありますが、これらはこのクエリとは十分に異なり、転置しようとする試みをスヌーカーします。問題は(かなり)簡単に述べることができます。'members'、'dog_shareoffered'、'dog_sharewanted'の3つのテーブルがあります。メンバーは、売りたいものや買いたいものについて0、1つ以上の広告を持っている可能性があり、詳細は、広告を掲載したメンバーのIDとともに、対応するオファーまたは募集テーブルに保存されます。列'id'はメンバーに固有であり、3つのテーブルすべてに共通です。私が欲しい質問は、どちらのテーブルにも広告を掲載していないメンバーの数を尋ねることです。
私はこれを尋ねるいくつかの方法を試しました。私が得ることができる最も近いものは、クラッシュしないクエリです!(私は決してMySQLの専門家ではありません)。以下は、他の例から収集したものからまとめたものですが、結果がゼロより大きいはずであることがわかっているゼロ行を返します。
SELECT id
FROM members
WHERE id IN (SELECT id
FROM dog_sharewanted
WHERE id IS NULL)
AND id IN (SELECT id
FROM dog_shareoffered
WHERE id IS NULL)
このクエリは、私が見た「JOIN」とは異なり、理解しやすいように見えますが、何らかの結合が必要なのではないかと推測していますが、この場合はどのようになりますか?