Мне нужно перевести этот рабочий оператор sql:
select model_names.name
FROM blog_posts
INNER JOIN model_names_relations
INNER JOIN model_names
ON blog_posts.id = model_names_relations.blog_post_id and model_names.id = model_names_relations.model_name_id
WHERE blog_posts.id = '12'
в конструктор запросов laravel. Я НЕ использую полную версию orm, поэтому не могу использовать функцию ownstomany. Я ограничен построителем запросов.
Я пробовал это:
$query = ( new DbSql )->db()->table( 'blog_posts' )
->join( 'model_names_relations', 'blog_post_id.id', '=', 'model_names_relations.blog_post_id' )
->join( 'model_names', 'model_names.id', '=', 'model_names_relations.model_name_id' )
->where( 'blog_posts.id', '12')
->select( 'model_names.name' )
->get();
var_dump( $query );
exit;
Но не сработает получаю:
protected 'message' => string 'SQLSTATE [42S22]: Столбец не найден: 1054 Неизвестный столбец' blog_post_id.id 'в' on clause '(SQL: выберите _3 _._ 4_ из
blog_posts
внутреннего соединенияmodel_names_relations
на _7 _._ 8_ = _9 _._ 10_ внутреннее соединениеmodel_names
на _12 _._ 13_ = _14 _._ 15_, где _16 _._ 17_ = 12) '(длина = 357) частная' строка '(Исключение) => строка' '(длина = 0)
Каким будет правильный синтаксис преобразования?