Привет моя структура базы данных выглядит следующим образом:Выберите определенное количество случайных строк из базы данных после соединения таблиц - Laravel 5,1
Таблица: статьи
id | category_id(fk) | title | description | image
Таблица Категории
id | name
Таблица: domain_category
id | domain_id(fk) | category_id(fk)
Теперь сверху таблицы. Мне нужно только 8 случайных строк из таблицыстатьи где Domain_ID = $ dynamic_domain_id
То, что я попытался это следующим образом:
$randomArticles = Article::select("articles.*")
->join('categories', 'categories.id', '=', 'articles.category_id')
->join('domain_category', 'domain_category.category_id', 'categories.id')
->where('domain_category.domain_id', $domain->lander_domain_id)
->orderBy(DB::raw('RAND()'))->take(8)->get();
Но я получаю сообщение об ошибке, а не получать правильный результат. Заранее спасибо.
... и какова ошибка, которую вы получаете? –
SQLSTATE [42000]: Ошибка синтаксиса или нарушение доступа: 1064 У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с 'categories.id '' где 'domain_category'.'domain_id' =? order by RAND() asc lim 'в строке 1 (SQL: выберите 'articles'. * из' articles' inner join 'categories' на' categories'.'id' = 'articles'.'category_id' left join' domain_category' on 'domain_category'.'category_id' categories.id' 'where' domain_category'.'domain_id' = 5 order by RAND() asc limit 5) – Siddharth