我有以下 mysql 查询,当我执行它时它在 phpmyadmin 中运行良好:
"SELECT * FROM accounts_users WHERE id = ( SELECT teacher_id FROM general_teacher_student_associations WHERE student_id = 509 )";
但是当我通过 Yii 执行时,它会中断:
$query = "SELECT * FROM accounts_users WHERE id = ( SELECT teacher_id FROM general_teacher_student_associations WHERE student_id =509 )";
$command = Yii::app()->db->createCommand($query);
$teachers_list = $command->query();
return $teachers_list;
509 是动态获取的值。
1.我做错了什么?
2. 这可以以更好的方式完成吗?
/******Edited***********/
发现错误:子查询返回多行。我可以使用单个查询来获取所有值,而不是使用 foreach 循环然后在其中执行另一个查询吗?
解决方案:( 接受丹尼尔斯的回答,因为他的评论实际上解决了这个问题)
$query = "SELECT * FROM accounts_users WHERE id IN ( SELECT teacher_id FROM general_teacher_student_associations WHERE student_id =509 )";
$command = Yii::app()->db->createCommand($query);
$teachers_list = $command->queryAll();
return $teachers_list;
ps:这是一个版本的作品,我不允许触摸模型,因此使用模型关系不在窗口,这就是我最终得到这个的原因