実行するとphpmyadminでうまく機能する次のmysqlクエリがあります。
"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: これは編集作業であり、モデルに触れることは許可されていないため、モデルの関係を使用することはできません。そのため、これに行き着きました