Yii2:使用Where子句进行左连接查询; orderBy子句

时间:2015-04-10 06:01:09

标签: mysql yii2

我已经编写了查询来从tbl_summer表获取状态为活动状态的不同stateID,这是表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]);

1 个答案:

答案 0 :(得分:1)

这有用吗?

$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中的第二个字段。