はそうのように、私は、あなたが店で買うことができる人、食料品店、およびアイテムを持つデータベースを持っていると言います多対多および多対多の交差点
Inventory
--------------------
| store_id| food_id|
--------------------
| 1 | 1 |
| 1 | 2 |
| 2 | 1 |
| 3 | 1 |
| 3 | 2 |
| 3 | 3 |
--------------------
そして、私はそれ
Lists
---------------------
| person_id| food_id|
---------------------
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
| 2 | 1 |
| 2 | 3 |
---------------------
私に買い物リストを持っている別のテーブルを持っている:店が何を売っているのを追跡するためのテーブル質問は、与えられた人、または彼らのID、どのような店に行くことができるかを把握するための最良の方法は何ですか、彼らはすべてのリストを取得します。 MySQLには、これらのタイプの計算のパターンがありますか?お時間を
-- Given that _pid is the person_id we want to get the list of stores for.
SELECT stores.name, store_id, num, COUNT(*) AS counter
FROM lists
INNER JOIN inventory
ON (lists.food_id=inventory.food_id)
INNER JOIN (SELECT COUNT(*) AS num
FROM lists WHERE person_id=_pid
GROUP BY person_id) AS T
INNER JOIN stores ON (stores.id=store_id)
WHERE person_id=_pid
GROUP BY store_id
HAVING counter >= num;
ありがとう:
私の試み(非常に醜いと乱雑に)のようなものです!
おかげいますが、上のワーキングモデルを作成した場合はそれも良いだろう[SQLフィドル](http://sqlfiddle.com/) – Taryn
そうですか? http://sqlfiddle.com/#!2/83667/6 – KLee1
完璧、ありがとう! :) – Taryn