最初にこれらは私のテーブルです:
Foo (id, Name)
Bar (foo_id, num)
私は次のことを行おうとしています。すべてのバーの数値が10より大きいFoosを選択したい。以下のクエリは完全に正常に機能し、それを実行しますが、Foo.idを選択に含めたくありません。 。選択からFoo.idを削除すると、(サブクエリの)where句に列が見つからないというエラーが表示されます。
#1054 - Unknown column 'Foo.id' in 'where clause'
選択からFoo.idを削除し、サブクエリのwhere句で列を使用するにはどうすればよいですか?サブクエリでFooテーブルを結合し、whereでNameを使用しようとしましたが、Nameが一意ではないため、目的の結果が得られません。
SELECT
Foo.Name,
Foo.id
FROM
Foo
LEFT JOIN Bar ON Bar.foo_id = Foo.id
GROUP BY Bar.foo_id
HAVING COUNT(Bar.foo_id) = (
SELECT
COUNT(Bar.foo_id)
FROM
Bar
WHERE
num > 10
AND
Bar.foo_id = Foo.id GROUP BY Bar.foo_id
)
前もって感謝します!