我有以下SQL查询:
SELECT * from db.tableA WHERE field in (SELECT id FROM db.tableB where other_field = value);
我想从tableA中选择字段,这些字段在子查询返回的值数组中。问题是:如何使用eloquent实现这一点?我的当前解决方案(我认为非常丑陋)如下:
$a = \App\tableB::where("other_field", "=", $value)->select('id')->get();
$arr = array();
for ($i = 0; $i < count($a); $i++) array_push($arr, $a[$i]['id']);
$res = \App\tableA::whereIn("field", $arr)->get();
有更好的方法吗?
谢谢!