次のようなクエリがあります。
SELECT users.id FROM users LEFT JOIN sales ON installations.customer = users.id
私が言いたいのは、「WHERE count(sales.id) > 4」のようなものです。これは、ユーザーが 4 つ以上の販売関連を持っている場合を意味します。私がこれを間違った方法で行っているかどうかはわかりませんが
次のようなクエリがあります。
SELECT users.id FROM users LEFT JOIN sales ON installations.customer = users.id
私が言いたいのは、「WHERE count(sales.id) > 4」のようなものです。これは、ユーザーが 4 つ以上の販売関連を持っている場合を意味します。私がこれを間違った方法で行っているかどうかはわかりませんが
select
users.id
from users
join sales on /* your join condition here */
group by users.id
having count(sales.id) > 4
これにより、すべての売上がユーザーごとにグループ化され、テーブルに4つを超えるレコードがある売上のみが返されsales
ます。
クエリに含まれていないテーブルを参照しているため、あまり意味がないように思われるため、上から結合条件を複製しませんでした。
これに似たものが欲しいと思います
select users.id, count(sales.id)
from users
LEFT JOIN sales ON installations.customer = users.id
group by users.id
having count(Sales.id) > 5
「groupby」および「having」句を使用する必要があります。
試す
SELECT users.id FROM users LEFT JOIN sales ON installations.customer = users.id GROUP BY users.id HAVING count(sale.id) > 4
W2CのGROUPBYの詳細については、こちらをご覧ください