Как я могу сделать запрос для нескольких таблиц без использования соединения? Как и в этом примере:Eloquent associate without JOIN
select c.id_categoria, c.titulo
from categorias c, aulas_categorias ac
where c.disciplina='N' and c.id_categoria=ac.id_categoria and ac.id_aula in (1,2,3,4)
Этот запрос возвращает два поля из таблицы «Categorias», но с условием, из другой таблицы. До сих пор ближе всего, что я получил в красноречивым был:
$categorias = AulaCategorias
::with('categoria')
->select('categorias.id_categoria', 'categorias.titulo')
->whereIn('aulas_categorias.id_aula', array(1,2,3,4))
->get();
И этот запрос возвращает
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'categorias.id_categoria' in 'field list'
in PDOConnection.php line 77
at PDO->prepare('select `categorias`.`id_categoria`, `categorias`.`titulo` from `aulas_categorias` where `aulas_categorias`.`id_aula` in (?, ?, ?, ?)', array()) in PDOConnection.php line 77
Если удалить выберите строку
->select('categorias.id_categoria', 'categorias.titulo')
запрос возвращает коллекцию, поэтому отношения в порядке.
Подводя итоги, я ищу способ, чтобы включить запрос, который красноречивее создает из
select `categorias`.`id_categoria`, `categorias`.`titulo`
from `aulas_categorias`
where `aulas_categorias`.`id_aula` in (?, ?, ?, ?)
в
select `categorias`.`id_categoria`, `categorias`.`titulo`
from `aulas_categorias`, `categorias`
where `aulas_categorias`.`id_aula` in (?, ?, ?, ?)
and 'categorias'.'id_categorias'='aulas_categorias'.'id_categorias'
and 'categorias'.'disciplina'='N'