Laravel Eloquent ORM WHERE IN (подзапрос)Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Laravel Eloquent ORM WHERE IN (подзапрос)

Сообщение Anonymous »

У меня есть следующий SQL-запрос:

Код: Выделить всё

SELECT * from db.tableA WHERE field in (SELECT id FROM db.tableB where other_field = value);
Я хочу выбрать из таблицы A, где поле находится в массиве значений, возвращаемых подзапросом. Вопрос в следующем: как я могу сделать это с помощью 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();
Есть лучший способ сделать это?

Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/357 ... n-subquery
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»