选择每个国家/地区名称最小的所有州。也显示相应的国家/地区名称

时间:2018-02-08 09:34:14

标签: mysql sql

我有两张表格如下

  • 国家 字段如(id *,代码,名称)

  • 状态 字段类似(id,name,country_id

我如何列出每个国家/地区名称最小的所有州。同时显示相应的国家/地区名称。

这是我正在尝试的,我在哪里以及如何使用分组?

查询:

DataContext

1 个答案:

答案 0 :(得分:0)

我比MySql更习惯Sql Server,但我觉得这很有用。还有一个小提琴here

SELECT c.NAME as country_name
    ,s.state_name
    ,s.state_name_length
FROM country c
JOIN (
    SELECT sl.NAME state_name
        ,char_length(sl.NAME) state_name_length
        ,sl.country_id 
    FROM STATE sl
    WHERE char_length(sl.NAME) = (
            SELECT min(char_length(sm.NAME))
            FROM state sm
            WHERE sm.country_id = sl.country_id
            )
    ) s ON c.id = s.country_id
ORDER BY s.state_name_length