Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
07.06.2022, 19:34
#58488
Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
Ссылка на профиль пользователя:
Ссылка на вложение:
Ссылка на вложение 2:
|
||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Господа базоёбы, скок сюды |
||||||||||||||||||
#18+
Я почти ничего в SQL не понимаю, не, конечно, select * на табличку сделать могу, но что-то большее - увы, когда-то что-то тыркал, но очень давно, мне это в работе не требуется. Задача такая, нужно выводить список вложений дедофорума на удаление для конкретного пользака, при этом я хочу видеть наглядно данные и из соседних табличек - ну там имя, форум, пост. Я открыл доку, почитал, https://dev.mysql.com/doc/refman/8.0/en/ Вроде бы получился такой запрос Код: SQL 1. 2. 3. 4. 5. 6. 7. 8.
Почему спрашиваю, вначале у меня какие-то дубли получались, однако если ебануть distinct, дубли удалялись. Но я так понимаю, если в запросе прибегнул к дистинкту - это плохо? Или нет? В общем, я внимательно ещё раз посмотрел что к чему присобачивается, вроде бы всё норм. и количетсво строк - то, что и из таблички с вложениями. На первой картинке просто количество вложений из таблички вложений, на второй табличка - которая меня интересует ... |
||||||||||||||||||
:
Нравится:
Не нравится:
|
||||||||||||||||||
|
07.06.2022, 19:39
|
|||
---|---|---|---|
Господа базоёбы, скок сюды |
|||
#18+
Хз как там в MySQL, но псевдонимы таблицам я бы назначил ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.06.2022, 19:41
|
|||
---|---|---|---|
Господа базоёбы, скок сюды |
|||
#18+
left join не нужен. Просто JOIN. И тогда не нужно будет и условие and v1_attachment.name is not null;. Такие записи сами отсекутся при выполнении on v1_post.id = v1_attachment.post_id ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.06.2022, 19:43
|
|||
---|---|---|---|
Господа базоёбы, скок сюды |
|||
#18+
left join не нужен. Просто JOIN. И тогда не нужно будет и условие and v1_attachment.name is not null;. Такие записи сами отсекутся при выполнении on v1_post.id = v1_attachment.post_id ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.06.2022, 19:44
|
|||
---|---|---|---|
Господа базоёбы, скок сюды |
|||
#18+
про distinct навскидку уже понял, что это плохо. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.06.2022, 19:45
|
|||
---|---|---|---|
Господа базоёбы, скок сюды |
|||
#18+
Черт. Это же MySQl Не знаю, как там LEFT JOIN по умолчанию LEFT OUTER JOIN или LEFT INNER JOIN ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.06.2022, 19:46
|
|||
---|---|---|---|
Господа базоёбы, скок сюды |
|||
#18+
Наверное оутер. Непонятно откуда у него дубли были ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.06.2022, 19:47
|
|||
---|---|---|---|
Господа базоёбы, скок сюды |
|||
#18+
Тож так сначала подумал, что надо from v1_attachment сделать. Но потом подумал, что на v1_post.user_id наверняка индекс есть. ... |
|||
:
Изменено: 07.06.2022, 19:48 - PaNik
Нравится:
Не нравится:
|
|||
|
07.06.2022, 19:49
|
|||
---|---|---|---|
Господа базоёбы, скок сюды |
|||
#18+
к таблице post, самой объёмной, присоединяю остальные. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.06.2022, 19:49
|
|||
---|---|---|---|
Господа базоёбы, скок сюды |
|||
#18+
Черт. Это же MySQl Не знаю, как там LEFT JOIN по умолчанию LEFT OUTER JOIN или LEFT INNER JOIN ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.06.2022, 19:50
|
|||
---|---|---|---|
Господа базоёбы, скок сюды |
|||
#18+
Тож так сначала подумал, что надо from v1_attachment сделать. Но потом подумал, что на v1_post.user_id наверняка индекс есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.06.2022, 19:51
|
|||
---|---|---|---|
Господа базоёбы, скок сюды |
|||
#18+
Наверное оутер. Непонятно откуда у него дубли были ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.06.2022, 19:53
|
|||
---|---|---|---|
Господа базоёбы, скок сюды |
|||
#18+
Тож так сначала подумал, что надо from v1_attachment сделать. Но потом подумал, что на v1_post.user_id наверняка индекс есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.06.2022, 19:55
|
|||
---|---|---|---|
Господа базоёбы, скок сюды |
|||
#18+
Понятно. Фик знает как там мусикл действует, но по сути ты сначала получаешь полную выборку и в том числе с сообщениями без аттачментов, а сверху накладываешь условие нот налл. Попробуй в условии склейки таблиц добавить этот нот налл. В фб такое прокатывали. Может побыстрее ьудет ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.06.2022, 19:59
|
|||
---|---|---|---|
Господа базоёбы, скок сюды |
|||
#18+
basename, планы давай ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.06.2022, 20:05
|
|||
---|---|---|---|
Господа базоёбы, скок сюды |
|||
#18+
Вообще в ms sql хорошо (в теории) было бы примерно так: 1) при наличии индекса по v1_post.user_id выбираем во времянку id и темы всех сообщения юзверя (их пока немного, это ж не Инос или Гарыныч с дедофорума с Овер 100к постов). 2) эту времянку inner join'ним на v1_attachment и v1_topic, выводим нужные поля. ... |
|||
:
Изменено: 07.06.2022, 20:06 - PaNik
Нравится:
Не нравится:
|
|||
|
07.06.2022, 20:14
|
|||
---|---|---|---|
Господа базоёбы, скок сюды |
|||
#18+
Понятно. Фик знает как там мусикл действует, но по сути ты сначала получаешь полную выборку и в том числе с сообщениями без аттачментов, а сверху накладываешь условие нот налл. Попробуй в условии склейки таблиц добавить этот нот налл. В фб такое прокатывали. Может побыстрее ьудет ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.06.2022, 20:15
|
|||
---|---|---|---|
Господа базоёбы, скок сюды |
|||
#18+
basename, планы давай ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.06.2022, 20:19
|
|||
---|---|---|---|
Господа базоёбы, скок сюды |
|||
#18+
Тож так сначала подумал, что надо from v1_attachment сделать. Но потом подумал, что на v1_post.user_id наверняка индекс есть. Таблички с вложениями, топиками и форумами - небольшие. Табличка пост - самая объемная. Вот с ней вроде более менее список выводится, как ожидалось. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.06.2022, 20:20
|
|||
---|---|---|---|
Господа базоёбы, скок сюды |
|||
#18+
А что мне в данном случае даст right? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.06.2022, 20:22
|
|||
---|---|---|---|
Господа базоёбы, скок сюды |
|||
#18+
Иннер джоин ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.06.2022, 20:25
|
|||
---|---|---|---|
Господа базоёбы, скок сюды |
|||
#18+
Понятно. Фик знает как там мусикл действует, но по сути ты сначала получаешь полную выборку и в том числе с сообщениями без аттачментов, а сверху накладываешь условие нот налл. Попробуй в условии склейки таблиц добавить этот нот налл. В фб такое прокатывали. Может побыстрее ьудет ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=24&mobile=1&tid=2074]: |
0ms |
get settings: |
19ms |
get forum list: |
8ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
1699ms |
get tp. blocked users: |
1ms |
others: | 32ms |
total: | 1805ms |
0 / 0 |