Есть таблицы:
- новости
- юзеры (people)
- рубрики (hubs)
- подписки юзеров на рубрики (hub_subscriptions)
Я хочу отфильтровать новости так, чтобы показывались только из тех рубрик, на которые юзер подписался.
По странным причинам этот запрос показывает именно новости из рубрик, на которые (ВНИМАНИЕ) уже подписывались, а затем отписались.
SELECT n.id, n.title, n.author_id, n.image_res, p.name, h.name
↵ FROM news n
↵ LEFT JOIN people p ON n.author_id=p.id
↵ LEFT JOIN hubs h ON n.hub_id=h.id
↵ WHERE n.visible=1 AND n.hub_id IN (SELECT hub_id FROM hub_subscriptions WHERE user_id=%айди юзера% AND active_subscription=1)
↵ ORDER BY n.added_time DESC
↵ LIMIT 0, 12
Ну то есть если в таблице hub_subscriptions есть запись о подписке пользователя со значением active_subscription = 0
P.S. Когда-то давно я писал запросы WHERE IN и вроде получалось. С этим запросом для меня все загадочно.