@mapleart

Как написать SQL выборку?

Здравствуйте! Столкнулся с такой проблемой.
Есть две таблицы: topic и topic_tag
5b3d13c2724ce914198491.png
и
5b3d13cf6681a772973258.png

Они связаны между собой полем topic_id
Мне нужно выбрать все элементы из topic если у него есть один из заданных тегов (Например, IN ('сайт', 'Демо', 'Test'))

Я попробовал сделать так:
SELECT DISTINCT
	t.topic_id
FROM
	topic as t
JOIN topic_tag as tag on tag.topic_id = t.topic_id AND tag.topic_tag_text IN  ('сотрудники', 'Директор')
WHERE
	1=1
ORDER BY t.topic_id desc
LIMIT 0, 10


И когда я хочу сделать выбор на вторую страницу LIMIT 1, 10 то выборка ничем не отличается. Не подскажете что можно сделать?
  • Вопрос задан
  • 90 просмотров
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
LIMIT <первая_запись>, <количество_записей>
Учитывая, что записи нумеруются с 1, выборки LIMIT 0, 10 и LIMIT 1, 10 эквивалентны.
Ответ написан
Комментировать
@johovich
Перемудрил ты с запросом. Если тебе topic_id нужен только из 1 таблицы, тебе вообще не нужно join делать
SELECT t.topic_id FROM topic as t
WHERE
t.topic_id in (SELECT topic_id FROM topic_tag WHERE topic_tag_text IN ('сотрудники', 'Директор')) ORDER BY t.topic_id desc

Прогони запрос в phpmyadmin и посмотри как там ставится limit при переключении пагинации, будет понятно как тебе надо делать.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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