1

私は次のクエリを持っています:

Table zone: zone_id, country_id, city_id

SELECT zone.zone_id, city_name
FROM zone
INNER JOIN city
ON city.city_id = zone.city_id
WHERE country_id = 3

結果:

zone_id | city_id
----------------------
17      | New York
16      | Los Angeles

およびその他のクエリ:

Table zone , Table management relation: zone_id

SELECT COUNT(user_id)
FROM management
WHERE zone_id = 17

SELECT COUNT(user_id)
FROM management
WHERE zone_id = 16

結果

first query: Count             second query:  Count
             -------                          --------
             5                                2

この方法で、カウント()を最初のクエリの結果の各行に結合するにはどうすればよいですか?

zone_id | city_id      | users
--------------------------------
17      | New York     | 5
16      | Los Angeles  | 2

私はこれを試しました:

SELECT zone.zone_id, vNombre, COUNT(user_id) AS users
FROM zone
INNER JOIN city
ON city.city_id = zone.city_id
INNER JOIN management
ON management.zone_id = zone.zone_id
WHERE country_id = 3
GROUP BY user_id

しかし、私はこれを見つけます:

zone_id | city_id      | users
--------------------------------
17      | New York     | 5
17      | New York     | 2
4

1 に答える 1

1
SELECT   zone_id, city_name, COUNT(user_id) AS users
FROM     zone
  INNER JOIN city       USING (city_id)
   LEFT JOIN management USING (zone_id)
WHERE    country_id = 3
GROUP BY zone_id, city_name
于 2012-05-30T22:15:16.750 に答える