похожий попытался придумать, в системе все сложнее
SELECT news.id, read_table_premium.user_id_to_read, news.name FROM news
INNER JOIN read_table_premium ON read_table_premium.news_id = news.id
--И ВОТ тут ниже мне нужно сделать джойн
INNER JOIN read_table ON read_table_premium.user_id_to_read = read_table.user_id_to_read AND read_table.news_id = news.id
из-за последнего джойна слишком долго отрабатывает и много ресурсов ест, так как количество пользователей и новостей в разы больше, чем премиальных пользователей
как оптимизировать этот джойн, чтобы ничего не ложилось?
или что вообще с этим делать
Мне просто нужно проверять что в таблице read_table есть строка с пользователем и такой же news.id, который используется в read_table_premium для конкретного news.id
Прости, а какую задачу ты хочешь решить? Ну то есть тебе нужно проверить может ли читать пользователь премиум новость?
я пытаюсь посмотреть есть ли такой же user_id_to_read и news.id в двух таблицах read_table и read_table_premium и только тогда выводить эту строку
Есть смутное подозрение, что так можно сделать, ща попробую проверить моё предположение.
Обсуждают сегодня