次のように、SQL データベースの 2 つのテーブルに M2M リレーションがあります。
Players
-------
Name
ID
Teams
------
Name
ID
PlayersTeams
------
PlayerID
TeamID
チームは 1 人以上のプレーヤーで構成されます。
プレーヤー ID を指定してチームをクエリし、正確にそれらのプレーヤーを含むチームのみを返したいと思います。それ以上でもそれ以下でもありません。そのため、プレーヤー (1,2,3) を持つチームをクエリすると、プレーヤー 1,2,3 を持つチームのみが返され、プレーヤー 1,2,3,4 を持つチームは返されません。
これは単一のクエリで可能ですか?
ここで解決しようとしているsqlfiddleがあります:http://sqlfiddle.com/#!2/27799/8
その例では、プレイヤー ID 1 と 2 でクエリを実行して、チーム「ジョンとミック」を選択できるようにしたいと考えています...
この sqlfiddle の更新http://sqlfiddle.com/#!2/27799/69チーム ID 2 ("john and mick") を選択できますが、チーム ID 4 ("john, mick and trev") も取得します。JUST 2 までフィルタリングする必要があります。