Mysql Yii2:Where子句的LeftJoin查询&;orderBy子句

Mysql Yii2:Where子句的LeftJoin查询&;orderBy子句,mysql,yii2,Mysql,Yii2,我使用写查询从tbl_summer表中获取状态为active的不同stateID,tbl_summer表是表tbl_states的主键 我要按字母顺序列出不同的州名。 事实上,我从下面的查询中得到了这个,但字母顺序并没有得到 那么,解决方案是什么 这是我的疑问: $query = Tbl_summer::find() ->select('tbl_summer.StateID, tbl_states.state_name') ->distinct('tbl_summer

我使用写查询从tbl_summer表中获取状态为active的不同stateID,tbl_summer表是表tbl_states的主键

我要按字母顺序列出不同的州名。 事实上,我从下面的查询中得到了这个,但字母顺序并没有得到

那么,解决方案是什么

这是我的疑问:

$query = Tbl_summer::find()
    ->select('tbl_summer.StateID, tbl_states.state_name')
    ->distinct('tbl_summer.StateID')
    ->from('tbl_summer')
    ->leftJoin('tbl_states', ['tbl_states.ID' => 'tbl_summer.StateID'])
    ->where(['tbl_summer.IsActive' => '1'])
    ->orderBy(['tbl_states.state_name' => SORT_ASC]);
这行吗

$query = Tbl_summer::find()
    ->select('tbl_summer.StateID, tbl_states.state_name')
    ->from('tbl_summer')
    ->leftJoin('tbl_states', ['tbl_states.ID' => 'tbl_summer.StateID'])
    ->where(['tbl_summer.IsActive' => '1'])
    ->groupBy('tbl_summer.StateID, tbl_states.state_name')
    ->orderBy(['tbl_states.state_name' => SORT_ASC]);

我认为如果一个id只有一个名称,则不需要使用
groupBy
中的第二个字段。

您必须使用groupBy而不是distinct。看到这个答案了吗@SantoshGaikwad这是什么意思?你有什么问题?