私のタイトルが達成しようとしているクエリを正しく伝えているかどうかわからないので、編集するか、より正確なより良いものを提案してください. これら2つのテーブルを結合しようとしています:
表 1:人
id |field1|field2|
------------------
1
2
3
4
.
.
. (etc)
表 2:食品
person.id | name
1 | chicken
1 | pork
1 | beef
2 | pork
2 | chicken
3 | chicken
4 | beef
.
. (etc)
ID が豚肉または鶏肉の両方と一致する人物の検索に基づいて、これらのテーブルを結合する必要があります。たとえば、 を検索するpork
と 1 と 2 が返され、 and を検索するpork
と1 と 2 が返されるはずですが、と同様にchicken
一致しないため 3 は返されません。、、およびを検索すると、1 つだけが返されます。chicken
pork
pork
chicken
beef
私はこの質問を見てきましたが、検索する項目の数がわかりません (一度検索するpork
とchicken
、およびpork
、、、chicken
またはbeef
別の検索になる可能性があります)。
基本的な句を試してみましたWHERE
が、これは間違いだと確信していました (クエリが機能しなかったため、これを確認しました)。
SELECT p.id
FROM people p, foods f
WHERE p.id = f.person_id AND (f.name = 'pork' AND f.name = 'chicken')
しかし、これは結果を返しません。数年前の SQL チュートリアルからEXISTS
、サブクエリと一緒にキーワードを使用する必要があることを覚えているようですが、それに基づいてクエリを作成する方法がわかりません。
編集: SQL Server CE はINTERSECT
キーワードをサポートしていないため、残念ながらそのオプションは利用できません。