@VisualIdeas

Как написать подобный запрос?

Скорее всего вопрос туповатый, но все таки:

Есть таблицы:
|------------------------------
| . Article
|------------------------------
| id
| . name
| is_active
|------------------------------

|------------------------------
| . ArticleCategory
|------------------------------
| article_id
| . category_id
|------------------------------

|------------------------------
| . Category
|------------------------------
| id
| . slug
| is_active
|------------------------------

Как получить все Articles из нескольких категорий?
и статей и категорий очень очень много - так что загрузить ID из средней таблицы - будет список на 20 000 id статей, а надо, допустим последние 100

100% гарантия работоспособности не требуется! Естественно таблицы даны для примера - интересует философия)
  • Вопрос задан
  • 70 просмотров
Решения вопроса 2
@dimoff66
Кратко о себе: Я есть
Select distinct first 100 A.id, A.name from Article as A
inner join ArticleCategory as AC on A.id = AC.article_id and AC.id in [2, 4, 7]
sort by A.id desc
Ответ написан
samodum
@samodum
Какой вопрос - такой и ответ
select a.* from Article a 
where a.id in (
select ac.article_id from ArticleCategory ac where ac.category_id in (1,2,3)
) order by a.id desc limit 100
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы