別のテーブルから値をもと総数を探します

コンピュータユーザー:

MySQLで:

私は、重複した値を持つテーブル内の都市を持っています。

表都市:

Name

New York, USA
New York, USA
Chicago, USA
Chicago, USA
Chicago, USA
Paris, France
Nice, France
Milan, Italy

この表のデータの形式は次のとおりです。

<city>, <country>

と同じ:

<city><comma><space><country>

表国:

Name

USA
France
Italy

私は、それぞれの国が持っているどのように多くの都市を取得したいです。お気に入り:

Country      Count

USA           2
France        2
Italy         1

だから、私は2つのクエリを持っています:

SELECT count(*) FROM `Cities` WHERE Cities.name LIKE '%, USA%'

しかし、この値はUSAから来る必要があります。

SELECT * FROM `country`

さて、どのように私は、目的のテーブルを得るのですか?

離れて渡します:

LEFT JOIN

select t1.name Country, count(distinct t2.name) Count
from country t1 left join cities t2 
on t2.name like concat('%, ', t1.name)
group by t1.name

参照のデモを
結果:

| Country | Count |
| ------- | ----- |
| France  | 2     |
| Italy   | 1     |
| USA     | 2     |

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=275906&siteId=1