1

次のようなクエリがあります。

SELECT users.id FROM users LEFT JOIN sales ON installations.customer = users.id

私が言いたいのは、「WHERE count(sales.id) > 4」のようなものです。これは、ユーザーが 4 つ以上の販売関連を持っている場合を意味します。私がこれを間違った方法で行っているかどうかはわかりませんが

4

3 に答える 3

4
select
    users.id

from users

join sales on /* your join condition here */

group by users.id

having count(sales.id) > 4

これにより、すべての売上がユーザーごとにグループ化され、テーブルに4つを超えるレコードがある売上のみが返されsalesます。

クエリに含まれていないテーブルを参照しているため、あまり意味がないように思われるため、上から結合条件を複製しませんでした。

于 2009-09-08T19:23:42.420 に答える
0

これに似たものが欲しいと思います

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
于 2009-09-08T19:25:12.620 に答える
0

「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の詳細については、こちらをご覧ください

于 2009-09-08T19:26:28.403 に答える