0

次の構造の「items」テーブルがあります。

id, person_id, active

および「people」テーブルとidおよびname列。

最もアクティブなアイテムで並べ替えて、people.name列をsqlに結合したいと思います。

私はそのようなことをしようとしましたが、うまくいきません:

SELECT people.id, COUNT(*) as items_count
FROM items, people
WHERE items.active = true AND people.id = items.person_id
GROUP BY items.person_id
ORDER BY items_count DESC
4

2 に答える 2

1

結合を使用します。これは条件に一致します。items_countで注文すると、最もアクティブなユーザーになります

Select people.id, COUNT(items.active) as items_count
FROM items
LEFT JOIN people on  people.id = items.person_id
WHERE items.active = true
GROUP BY people.id
ORDER BY items_count DESC
于 2012-11-01T12:07:22.910 に答える
0
   select * from (SELECT people.id, COUNT(*) as items_count
    FROM items
    left outer join people on  people.id = items.person_id
    where items.active = true
    GROUP BY items.person_id) as A
    ORDER BY A.items_count DESC
于 2012-11-01T12:04:03.793 に答える