Ребят, привет, что то сегодня у меня голова не работает. Решение

у меня есть но подозреваю что есть более оптимальное решение.


Есть две таблицы, offers и visited_offers.
Человек когда заходит на какой то офферс, мы это записываем.
Несколько раз заходит, несколько записей в visited_offers мы создадим.

Нужно сделать запрос в базу так чтобы нам вернуло все офферсы который наш человек видел, так сказать историю чтобы он свою видел.

Моё решение:

SELECT * FROM offers WHERE id IN (SELECT offer_id FROM visited_offers WHERE user_id = 123)

Но я думаю что можно как то более оптимальное. Можете ли найти решение по лучше ?

9 ответов

31 просмотр

Если не нужны данные из второй таблицы можно использовать where exists https://sqlize.online/sql/mysql57/19501ccec42927061064f9c61f2f10a9/

John-D Автор вопроса
Slava Rozhnev SQLtest.online https://phpize.online
Если не нужны данные из второй таблицы можно испол...

Будет ли это быстрее ? ведь он будет проходится по всем офферам и проверять в таблице visited_offers

а если join ?

John-D Автор вопроса
R1KO 🇺🇦
а если join ?

С джойна начинал но были некоторые проблемы, сейчас скину запрос

John-D Автор вопроса
R1KO 🇺🇦
а если join ?

дело в том что мне надо уникальные офферы вернуть а не 10 раз тот же оффер если 10 просмотров было, а груп бай я сделать не могу потому что он хочет чтобы всё что группирую всё было в селекте

John D
дело в том что мне надо уникальные офферы вернуть ...

дистинкт, но надо по производительности сравнивать

John-D Автор вопроса
R1KO 🇺🇦
дистинкт, но надо по производительности сравнивать

SELECT of_ FROM offers of_ INNER JOIN visited_offers vo_ ON ( vo_.offer_id = of_.id AND vo_.user_id = 123 ) WHERE vo_.user_id = 123 AND of_.STATUS = 'published' AND of_.replaced_with_offer_id IS NULL AND vo_.id IS NOT NULL ORDER BY vo_.visited_at DESC LIMIT 3

John D
SELECT of_ FROM offers of_ INNER JOIN visite...

зачем юзер ид и в ОН и в вере

John-D Автор вопроса
R1KO 🇺🇦
зачем юзер ид и в ОН и в вере

не важно на самом деле, можно удалить

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

Обсуждают сегодня

1. https://www.kaggle.com/code/ahmadrezagholami2001/housing-estimation-linear-regression 2. https://www.kaggle.com/code/ahmadrezagholami2001/uncovering-quality-in-wines-logis...
Ahmadreza
1
Hi! Could you please upvote my new notebook? thanks a lot. https://www.kaggle.com/code/melissamonfared/anime-character-generation-dsgan-gan
məru
4
upvote plz https://www.kaggle.com/code/bassetkerouche/swapping-face?scriptVersionId=207300096
benkerrouche Statoinary
1
-- Привет всем. -- Есть csv, проблема в том что он содержит очень много повторов по столбцам и по строкам. -- Решил перекинуть это в базу данных, чтобы было проще. Но я не ша...
Oleg Ivanov
1
Как считаете - вопрос на собесе: «Как быстрее всего запустить ec2 машину в aws (в чистом аккаунте) и показать вывод от любой команды с нее» не очень ли сложный для условного м...
Sergey
50
Господа, у меня вопрос. Что вообще такое этот ваш data science и data scientists? А то гуглю, а мне какую-то расплывчатую фигню говорят.
Inkosta
44
Исходя из ваших комментариев, получается, что чтобы получить марты в CH из данных в PG, неправильно тянуть сырые данные в CH и там их обрабатывать, лепить справочники и джойни...
unhingedlunatic
42
Hi could you please help me with my two new projects? https://www.kaggle.com/code/hesankazemnia/rice-image-classification-cnn-pytorch https://www.kaggle.com/code/hesankazemnia...
Hesan
6
hi, Can you upvote? https://www.kaggle.com/code/durjoychandrapaul/rag-q-a-system-by-langchain-huggingface-for-pdf?scriptVersionId=204704280
A
1
Could you upvote and comment please? https://www.kaggle.com/code/tatianapetrushkevich/beginner-images https://www.kaggle.com/code/tatianapetrushkevich/python-for-beginners1 ...
Tazziyana
7
Карта сайта