HiW*_*iWo 0 activerecord yii yii2
我尝试使用LEFT JOIN发送SQL请求,但它不显示table2
表中的数据.
public static function top($limit)
{
return self::findBySql("
SELECT * FROM table 1 g1
LEFT JOIN table2 s1
ON (g1.id = s1.g_id AND s1.id = (
SELECT MAX(id)
FROM table2 s2 WHERE s2.g_id = g1.id
))
LIMIT :limit",
[':limit' => $limit]
)->all();
}
Run Code Online (Sandbox Code Playgroud)
您似乎将此功能添加到模型中,self表示模型本身.
Yii不会返回另一个表的结果,只有在模型上调用find时才会限制模型,而是需要使用db查询,如下所示:
$query = new \yii\db\Query;
$query->select('*')
->from('table 1 g1')
->leftJoin('table2 s1', 's1.g_id AND s1.id = (SELECT MAX(id) FROM table2 s2 WHERE s2.g_id = g1.id')
->limit($Limit);
$command = $query->createCommand();
$resp = $command->queryAll();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
16710 次 |
最近记录: |