Гость
Map
Форумы / MySQL [закрыт для гостей] / Господа базоёбы, скок сюды / 25 сообщений из 242, страница 5 из 10
08.06.2022, 12:30
    #59206
Tammy Jo Saint Cloud
Участник
[заблокирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Господа базоёбы, скок сюды
это поше или очередное его подрожалово?
...
Рейтинг: 0 / 0
08.06.2022, 12:36
    #59213
паразит
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Господа базоёбы, скок сюды
Tammy Jo Saint Cloud  08.06.2022, 12:30
[игнорируется]
это поше или очередное его подрожалово?
Пашка не такой борзый
...
Рейтинг: 0 / 0
08.06.2022, 13:23
    #59257
PaNik
Участник
[игнорирует гостей]
[не активирован]
[неодобрен]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Господа базоёбы, скок сюды
Горбатый ёж  08.06.2022, 08:04
[игнорируется]
Это конечно такой хитрый лайфхак, использование поля not null для имитации джойна при использовании лефт джойна, но в общем случае это не работает.
Чего???
Почему не работает???
...
Рейтинг: 0 / 0
08.06.2022, 13:28
    #59261
PaNik
Участник
[игнорирует гостей]
[не активирован]
[неодобрен]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Господа базоёбы, скок сюды
Горбатый ёж  08.06.2022, 10:57
[игнорируется]
включить сию заебатую возможность используя хинт.
Ога, блеать, навтыкают хинтов, потом таблица разрастается и наступает пиздец
...
Рейтинг: 0 / 0
08.06.2022, 13:57
    #59304
9288
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Господа базоёбы, скок сюды
Tammy Jo Saint Cloud  07.06.2022, 22:25
[игнорируется]
basename  07.06.2022, 21:42
[игнорируется]
Tammy Jo Saint Cloud  07.06.2022, 21:41
[игнорируется]
блядь, просто йобаная классика

Именно для таких долбойобов я пишу статьи, но долбойобы, разумеется, хуй их читают
Где можно прочитать твою статью? Я долбоеб. С sql не связан.
на профильных сайтах в интернетах (С)
Там моя подпись, так чот ищи сам

но в двух словах
классическая ошибка - это фильтрация по "правой" таблице при лефт джойне, которая превращает аутер в иннер. если изначально и нужен был иннер, то в нормальных серверах рояли особо не играет. Если оптимизатор говно - рояль может быть

второй классический случай - использование дистинкта при неправильной работе с мастер-слейв
вместо того чтобы юзать exists (который на самом деле нужен), некто юзает джойн со слейвом, получает мультипликацию хедера, пугается и пиздячит туда дистинкт

На самом деле для разовых запросов - практически похуй как ты что там пишешь. Ну поебётся сервер минуту вместо того чтобы выполнить запрос за полсекунды - всем похуй, запрос разовый, лишь бы результат был правильный

но если запрос выполняется постоянно и многократно - то тут конечно приходтся смотреть как что писать
Дохтур?
...
Рейтинг: 0 / 0
08.06.2022, 14:12
    #59323
Tammy Jo Saint Cloud
Участник
[заблокирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Господа базоёбы, скок сюды
9288  08.06.2022, 13:57
[игнорируется]
Tammy Jo Saint Cloud  07.06.2022, 22:25
[игнорируется]
basename  07.06.2022, 21:42
[игнорируется]
Tammy Jo Saint Cloud  07.06.2022, 21:41
[игнорируется]
блядь, просто йобаная классика

Именно для таких долбойобов я пишу статьи, но долбойобы, разумеется, хуй их читают
Где можно прочитать твою статью? Я долбоеб. С sql не связан.
на профильных сайтах в интернетах (С)
Там моя подпись, так чот ищи сам

но в двух словах
классическая ошибка - это фильтрация по "правой" таблице при лефт джойне, которая превращает аутер в иннер. если изначально и нужен был иннер, то в нормальных серверах рояли особо не играет. Если оптимизатор говно - рояль может быть

второй классический случай - использование дистинкта при неправильной работе с мастер-слейв
вместо того чтобы юзать exists (который на самом деле нужен), некто юзает джойн со слейвом, получает мультипликацию хедера, пугается и пиздячит туда дистинкт

На самом деле для разовых запросов - практически похуй как ты что там пишешь. Ну поебётся сервер минуту вместо того чтобы выполнить запрос за полсекунды - всем похуй, запрос разовый, лишь бы результат был правильный

но если запрос выполняется постоянно и многократно - то тут конечно приходтся смотреть как что писать
Дохтур?
хаус? как раз досматриваю 21 серию 8го сезона
...
Рейтинг: 0 / 0
08.06.2022, 14:24
    #59335
Горбатый ёж
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Господа базоёбы, скок сюды
PaNik  08.06.2022, 13:23
[игнорируется]
Горбатый ёж  08.06.2022, 08:04
[игнорируется]
Это конечно такой хитрый лайфхак, использование поля not null для имитации джойна при использовании лефт джойна, но в общем случае это не работает.
Чего???
Почему не работает???
Потому что в общем случае поле name в таблице аттачментов может быть null и ты потеряешь аттачмент.
...
Рейтинг: 0 / 0
08.06.2022, 14:27
    #59339
PaNik
Участник
[игнорирует гостей]
[не активирован]
[неодобрен]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Господа базоёбы, скок сюды
Горбатый ёж  08.06.2022, 14:24
[игнорируется]
PaNik  08.06.2022, 13:23
[игнорируется]
Горбатый ёж  08.06.2022, 08:04
[игнорируется]
Это конечно такой хитрый лайфхак, использование поля not null для имитации джойна при использовании лефт джойна, но в общем случае это не работает.
Чего???
Почему не работает???
Потому что в общем случае поле name в таблице аттачментов может быть null и ты потеряешь аттачмент.
Там имя файла с аттачментом. Если там null - аттачмента нет.
...
Рейтинг: 0 / 0
08.06.2022, 14:29
    #59344
Горбатый ёж
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Господа базоёбы, скок сюды
PaNik  08.06.2022, 14:27
[игнорируется]
Там имя файла с аттачментом. Если там null - аттачмента нет.
Откуда ты знаешь все общие случаи?
А что делать, если аттачмент в систему приаттачивается посредством православного копипаста, который о опять таки в общем случае может не иметь никакого имени файла (в отличии от богомерзкого драгэндропа)?
...
Рейтинг: 0 / 0
08.06.2022, 14:39
    #59356
PaNik
Участник
[игнорирует гостей]
[не активирован]
[неодобрен]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Господа базоёбы, скок сюды
Горбатый ёж  08.06.2022, 14:29
[игнорируется]
PaNik  08.06.2022, 14:27
[игнорируется]
Там имя файла с аттачментом. Если там null - аттачмента нет.
Откуда ты знаешь все общие случаи?
А что делать, если аттачмент в систему приаттачивается посредством православного копипаста, который о опять таки в общем случае может не иметь никакого имени файла (в отличии от богомерзкого драгэндропа)?
basename, что хранится в поле v1_attachment.name?
...
Рейтинг: 0 / 0
08.06.2022, 14:40
    #59359
Горбатый ёж
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Господа базоёбы, скок сюды
PaNik  08.06.2022, 14:39
[игнорируется]
Горбатый ёж  08.06.2022, 14:29
[игнорируется]
PaNik  08.06.2022, 14:27
[игнорируется]
Там имя файла с аттачментом. Если там null - аттачмента нет.
Откуда ты знаешь все общие случаи?
А что делать, если аттачмент в систему приаттачивается посредством православного копипаста, который о опять таки в общем случае может не иметь никакого имени файла (в отличии от богомерзкого драгэндропа)?
basename, что хранится в поле v1_attachment.name?
Какая разница, я изначально писал, что способ конечно рабочий, но не в общем случае.
И вообще использовать такое вместо простого джойна - это странно.
...
Рейтинг: 0 / 0
08.06.2022, 14:49
    #59371
PaNik
Участник
[игнорирует гостей]
[не активирован]
[неодобрен]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Господа базоёбы, скок сюды
Горбатый ёж  08.06.2022, 14:40
[игнорируется]
PaNik  08.06.2022, 14:39
[игнорируется]
Горбатый ёж  08.06.2022, 14:29
[игнорируется]
PaNik  08.06.2022, 14:27
[игнорируется]
Там имя файла с аттачментом. Если там null - аттачмента нет.
Откуда ты знаешь все общие случаи?
А что делать, если аттачмент в систему приаттачивается посредством православного копипаста, который о опять таки в общем случае может не иметь никакого имени файла (в отличии от богомерзкого драгэндропа)?
basename, что хранится в поле v1_attachment.name?
Какая разница, я изначально писал, что способ конечно рабочий, но не в общем случае.
И вообще использовать такое вместо простого джойна - это странно.
Вполне рабочий вариант.
...
Рейтинг: 0 / 0
08.06.2022, 15:21
    #59394
Горбатый ёж
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Господа базоёбы, скок сюды
PaNik  08.06.2022, 14:49
[игнорируется]
Вполне рабочий вариант.
Не в общем случае.
...
Рейтинг: 0 / 0
08.06.2022, 16:28
    #59420
PaNik
Участник
[игнорирует гостей]
[не активирован]
[неодобрен]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Господа базоёбы, скок сюды
Горбатый ёж  08.06.2022, 15:21
[игнорируется]
PaNik  08.06.2022, 14:49
[игнорируется]
Вполне рабочий вариант.
Не в общем случае.
"Общие случаи" часто пагубно сказываться на производительности в данном конкретном случае
...
Рейтинг: 0 / 0
09.06.2022, 08:15
    #59815
Горбатый ёж
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Господа базоёбы, скок сюды
PaNik  08.06.2022, 16:28
[игнорируется]
Горбатый ёж  08.06.2022, 15:21
[игнорируется]
PaNik  08.06.2022, 14:49
[игнорируется]
Вполне рабочий вариант.
Не в общем случае.
"Общие случаи" часто пагубно сказываться на производительности в данном конкретном случае
Интересно и как может пагубно сказаться на производительности замена left join на join?
...
Рейтинг: 0 / 0
09.06.2022, 14:28
    #60138
basename
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Господа базоёбы, скок сюды
W  08.06.2022, 10:53
[игнорируется]
basename  07.06.2022, 19:44
[игнорируется]
Sparrow  07.06.2022, 19:42
[игнорируется]
basename [игнорируется] 

Distinct плохо, значит ты не понимаешь структуру базы или она плоха.

Как правило нужно добавить ещё условия в join , или в условия

Where
про distinct навскидку уже понял, что это плохо.
схуяле блядь это плохо?
поменьше слушай всяких пидоров
ну если можно сделать без distinct и его используешь, значит просто неверно составляешь запрос и прибегаешь уже почти к стороннему средству? так можно что-то не то отрубить или наоборот, в моем то случае конечно по хер.
...
Рейтинг: 0 / 0
09.06.2022, 14:36
    #60149
basename
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Господа базоёбы, скок сюды
В общем, вот структуры таблиц, из которых я беру данные

Можно просто вывести из таблички v1_attachment все вложения пользователя но я хочу наглядно видеть
- id поста
- id пользователя
- имя пользователя
- id форума
- id темы
- системное имя вложения

Все эти данные присутствуют и пересекаются в таблицах но естсетвенно не во всех есть все )

Я так и не понял до сих пор чем плох конкретно мой запрос.
Код
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
mysql> describe v1_user;
+----------------------------+--------------+------+-----+---------+----------------+
| Field                      | Type         | Null | Key | Default | Extra          |
+----------------------------+--------------+------+-----+---------+----------------+
| id                         | int          | NO   | PRI | NULL    | auto_increment |
| login                      | varchar(255) | NO   | UNI | NULL    |                |
| password_hash              | varchar(255) | NO   |     | NULL    |                |
| user_name                  | varchar(255) | NO   | UNI | NULL    |                |
| user_name_hash             | varchar(255) | YES  | MUL | NULL    |                |
| email                      | varchar(255) | NO   |     | NULL    |                |
| email_hash                 | varchar(255) | YES  | UNI | NULL    |                |
| hide_email                 | tinyint      | NO   |     | 1       |                |
| registration_date          | datetime     | NO   |     | NULL    |                |
| last_visit_date            | datetime     | YES  |     | NULL    |                |
| last_post_date             | datetime     | YES  |     | NULL    |                |
| is_admin                   | tinyint      | NO   |     | 0       |                |
| message                    | varchar(500) | YES  |     | NULL    |                |
| info                       | text         | YES  |     | NULL    |                |
| homepage                   | varchar(500) | YES  |     | NULL    |                |
| signature                  | text         | YES  |     | NULL    |                |
| pwd_reset_hash             | varchar(255) | YES  | MUL | NULL    |                |
| pwd_reset_expire           | datetime     | YES  |     | NULL    |                |
| activation_hash            | varchar(100) | YES  |     | NULL    |                |
| activation_expire          | datetime     | YES  |     | NULL    |                |
| activated                  | tinyint      | NO   |     | 0       |                |
| died                       | tinyint      | NO   |     | 0       |                |
| autologin_hash             | varchar(255) | YES  | MUL | NULL    |                |
| blocked                    | tinyint      | NO   |     | 0       |                |
| self_blocked               | tinyint      | NO   |     | 0       |                |
| block_expires              | datetime     | YES  | MUL | NULL    |                |
| block_reason               | text         | YES  |     | NULL    |                |
| hide_user_avatars          | tinyint      | NO   |     | 0       |                |
| hide_user_info             | tinyint      | NO   |     | 0       |                |
| hide_pictures              | tinyint      | NO   |     | 0       |                |
| donot_hide_adult_pictures  | tinyint      | NO   |     | 0       |                |
| hide_ignored               | tinyint      | NO   |     | 0       |                |
| location                   | varchar(255) | YES  |     | NULL    |                |
| hidden                     | tinyint      | NO   |     | 0       |                |
| send_notifications         | tinyint      | NO   |     | 0       |                |
| donot_notify_on_rates      | tinyint      | NO   |     | 0       |                |
| no_private_messages        | tinyint      | NO   |     | 0       |                |
| turnoff_personal_appeals   | tinyint      | NO   |     | 0       |                |
| turnoff_events             | tinyint      | NO   |     | 0       |                |
| approved                   | tinyint      | NO   |     | 0       |                |
| read_marker                | varchar(255) | YES  | UNI | NULL    |                |
| ip                         | varchar(250) | YES  |     | NULL    |                |
| last_ip                    | varchar(250) | YES  |     | NULL    |                |
| ignore_guests_blacklist    | tinyint      | NO   |     | 0       |                |
| ignore_guests_whitelist    | tinyint      | NO   |     | 0       |                |
| ignore_new_guests          | tinyint      | NO   |     | 0       |                |
| no_video_expand            | tinyint      | NO   |     | 0       |                |
| logout                     | tinyint      | NO   |     | 0       |                |
| last_logout_date           | datetime     | YES  |     | NULL    |                |
| last_events_view_date      | datetime     | YES  |     | NULL    |                |
| rating_blocked             | tinyint      | NO   |     | 0       |                |
| time_zone                  | varchar(255) | YES  |     | NULL    |                |
| privileged                 | tinyint      | NO   |     | 0       |                |
| privileged_topic_moderator | tinyint      | NO   |     | 0       |                |
| notify_about_new_users     | tinyint      | NO   |     | 0       |                |
| notify_citation            | tinyint      | NO   |     | 0       |                |
| skin                       | varchar(255) | YES  |     | NULL    |                |
| skin_properties            | text         | YES  |     | NULL    |                |
| interface_language         | varchar(50)  | YES  |     | NULL    |                |
| global_ban_allowed         | tinyint      | NO   |     | 0       |                |
| show_ip                    | tinyint      | NO   |     | 0       |                |
| notify_on_words            | tinyint      | NO   |     | 0       |                |
| words_to_notify            | text         | YES  |     | NULL    |                |
| hide_comments              | tinyint      | NO   |     | 0       |                |
| thematic_per_default       | tinyint      | NO   |     | 0       |                |
| last_host                  | varchar(255) | YES  |     | NULL    |                |
| custom_css                 | text         | YES  |     | NULL    |                |
| custom_smiles              | text         | YES  |     | NULL    |                |
| ref                        | int          | YES  |     | NULL    |                |
+----------------------------+--------------+------+-----+---------+----------------+
69 rows in set (0.01 sec)

mysql> describe v1_post;
+--------------------+--------------+------+-----+---------+----------------+
| Field              | Type         | Null | Key | Default | Extra          |
+--------------------+--------------+------+-----+---------+----------------+
| id                 | int          | NO   | PRI | NULL    | auto_increment |
| user_id            | int          | YES  | MUL | NULL    |                |
| author             | varchar(255) | NO   | MUL | NULL    |                |
| creation_date      | datetime     | NO   | MUL | NULL    |                |
| pinned             | tinyint      | NO   | MUL | 0       |                |
| deleted            | tinyint      | NO   | MUL | 0       |                |
| text_content       | mediumtext   | YES  |     | NULL    |                |
| html_content       | mediumtext   | YES  |     | NULL    |                |
| searchable_content | mediumtext   | YES  | MUL | NULL    |                |
| has_picture        | tinyint      | NO   | MUL | 0       |                |
| has_audio          | tinyint      | NO   | MUL | 0       |                |
| has_video          | tinyint      | NO   | MUL | 0       |                |
| has_link           | tinyint      | NO   | MUL | 0       |                |
| has_code           | tinyint      | NO   | MUL | 0       |                |
| has_attachment     | tinyint      | NO   | MUL | 0       |                |
| has_attachment_ref | tinyint      | NO   | MUL | 0       |                |
| read_marker        | varchar(255) | YES  | MUL | NULL    |                |
| ip                 | varchar(250) | YES  | MUL | NULL    |                |
| last_updated_by    | varchar(255) | YES  |     | NULL    |                |
| last_updated       | datetime     | YES  |     | NULL    |                |
| self_edited        | tinyint      | NO   |     | 0       |                |
| last_warned_by     | varchar(255) | YES  |     | NULL    |                |
| last_warning       | text         | YES  |     | NULL    |                |
| bb_parser_version  | int          | NO   |     | 1       |                |
| topic_id           | int          | NO   | MUL | NULL    |                |
| user_marker        | varchar(255) | YES  | MUL | NULL    |                |
| user_agent         | varchar(500) | YES  |     | NULL    |                |
| is_comment         | tinyint      | NO   | MUL | 0       |                |
| is_adult           | tinyint      | NO   | MUL | 0       |                |
| is_system          | tinyint      | NO   |     | 0       |                |
| ref                | int          | YES  | MUL | NULL    |                |
+--------------------+--------------+------+-----+---------+----------------+
31 rows in set (0.00 sec)

mysql> describe v1_attachment;
+--------------+--------------+------+-----+---------+----------------+
| Field        | Type         | Null | Key | Default | Extra          |
+--------------+--------------+------+-----+---------+----------------+
| id           | int          | NO   | PRI | NULL    | auto_increment |
| post_id      | int          | NO   | MUL | NULL    |                |
| nr           | int          | NO   |     | NULL    |                |
| name         | varchar(700) | YES  | MUL | NULL    |                |
| origin_name  | varchar(700) | YES  |     | NULL    |                |
| type         | varchar(255) | YES  | MUL | NULL    |                |
| deleted      | tinyint      | NO   |     | 0       |                |
| user_id      | int          | YES  | MUL | NULL    |                |
| favourite    | tinyint      | NO   | MUL | 0       |                |
| last_post_id | int          | NO   | MUL | NULL    |                |
+--------------+--------------+------+-----+---------+----------------+
10 rows in set (0.00 sec)

mysql> describe v1_topic;
+----------------------+--------------+------+-----+---------+----------------+
| Field                | Type         | Null | Key | Default | Extra          |
+----------------------+--------------+------+-----+---------+----------------+
| id                   | int          | NO   | PRI | NULL    | auto_increment |
| name                 | varchar(700) | NO   | MUL | NULL    |                |
| author               | varchar(255) | NO   | MUL | NULL    |                |
| creation_date        | datetime     | NO   | MUL | NULL    |                |
| deleted              | tinyint      | NO   | MUL | 0       |                |
| closed               | tinyint      | NO   |     | 0       |                |
| pinned               | tinyint      | NO   | MUL | 0       |                |
| read_marker          | varchar(255) | YES  | MUL | NULL    |                |
| has_pinned_post      | tinyint      | NO   |     | 0       |                |
| merged               | int          | YES  |     | NULL    |                |
| is_poll              | tinyint      | NO   |     | 0       |                |
| poll_comment         | text         | YES  |     | NULL    |                |
| poll_results_delayed | tinyint      | NO   |     | 0       |                |
| no_guests            | tinyint      | NO   |     | 0       |                |
| forum_id             | int          | NO   | MUL | NULL    |                |
| user_id              | int          | YES  | MUL | NULL    |                |
| user_marker          | varchar(255) | YES  |     | NULL    |                |
| is_private           | tinyint      | NO   | MUL | 0       |                |
| publish_delay        | tinyint      | NO   | MUL | 0       |                |
| profiled_topic       | tinyint      | NO   |     | 0       |                |
| request_moderation   | tinyint      | NO   |     | 0       |                |
| ref                  | int          | YES  | MUL | NULL    |                |
+----------------------+--------------+------+-----+---------+----------------+
22 rows in set (0.00 sec)

mysql> describe v1_forum;
+-----------------------+--------------+------+-----+---------+----------------+
| Field                 | Type         | Null | Key | Default | Extra          |
+-----------------------+--------------+------+-----+---------+----------------+
| id                    | int          | NO   | PRI | NULL    | auto_increment |
| name                  | varchar(255) | NO   | UNI | NULL    |                |
| protected_by_password | tinyint      | NO   | MUL | 0       |                |
| password              | varchar(255) | YES  |     | NULL    |                |
| creation_date         | datetime     | NO   |     | NULL    |                |
| restricted_access     | tinyint      | NO   | MUL | 0       |                |
| allow_edit            | tinyint      | NO   |     | 0       |                |
| no_guests             | tinyint      | NO   |     | 0       |                |
| user_posting_as_guest | tinyint      | NO   |     | 0       |                |
| restricted_guest_mode | tinyint      | NO   |     | 0       |                |
| hide_from_robots      | tinyint      | NO   |     | 0       |                |
| description           | varchar(500) | YES  |     | NULL    |                |
| deleted               | tinyint      | NO   | MUL | 0       |                |
| closed                | tinyint      | NO   |     | 0       |                |
| sort_order            | int          | NO   |     | 0       |                |
| access_duration       | int          | YES  |     | NULL    |                |
| access_message_count  | int          | YES  |     | NULL    |                |
| stringent_rules       | tinyint      | NO   |     | 0       |                |
+-----------------------+--------------+------+-----+---------+----------------+
18 rows in set (0.01 sec)

mysql>
...
Рейтинг: 0 / 0
09.06.2022, 14:40
    #60151
basename
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Господа базоёбы, скок сюды
basename  07.06.2022, 19:34
[игнорируется]
Я почти ничего в SQL не понимаю, не, конечно, select * на табличку сделать могу, но что-то большее - увы, когда-то что-то тыркал, но очень давно, мне это в работе не требуется.

Задача такая, нужно выводить список вложений дедофорума на удаление для конкретного пользака, при этом я хочу видеть наглядно данные и из соседних табличек - ну там имя, форум, пост.

Я открыл доку, почитал, https://dev.mysql.com/doc/refman/8.0/en/

Вроде бы получился такой запрос
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
use NOSQL;
select v1_post.id, v1_post.user_id, v1_post.author, v1_topic.forum_id, v1_post.topic_id, v1_attachment.name
from v1_post
left join v1_attachment
on v1_post.id = v1_attachment.post_id
left join v1_topic
on v1_post.topic_id = v1_topic.id
where v1_post.user_id = '173' and v1_attachment.name is not null;
Вопрос, насколько он хуёвый и чего я не учёл?

Почему спрашиваю, вначале у меня какие-то дубли получались, однако если ебануть distinct, дубли удалялись. Но я так понимаю, если в запросе прибегнул к дистинкту - это плохо? Или нет?

В общем, я внимательно ещё раз посмотрел что к чему присобачивается, вроде бы всё норм. и количетсво строк - то, что и из таблички с вложениями.

На первой картинке просто количество вложений из таблички вложений, на второй табличка - которая меня интересует
pasted_image.png
pasted_image.png
Вот так будет если убрать not null (ну это очевидно и так)
pasted_image.png
...
Рейтинг: 0 / 0
09.06.2022, 14:41
    #60153
Tammy Jo Saint Cloud
Участник
[заблокирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Господа базоёбы, скок сюды
Горбатый ёж  09.06.2022, 08:15
[игнорируется]
PaNik  08.06.2022, 16:28
[игнорируется]
Горбатый ёж  08.06.2022, 15:21
[игнорируется]
PaNik  08.06.2022, 14:49
[игнорируется]
Вполне рабочий вариант.
Не в общем случае.
"Общие случаи" часто пагубно сказываться на производительности в данном конкретном случае
Интересно и как может пагубно сказаться на производительности замена left join на join?
завиисит от
в общему случае для скуля (а не мускуля) существуют варианты, когда такая замена влияет на производительность

в случае с мелкими базами (мускул, постгре, мария, фиребёрд, етк) изменеие производительности может быть из-за оптимизатора, когда при преобразовании AST для разных кейсов используются разные "костыльные" ветки оптимизатора.
...
Рейтинг: 0 / 0
09.06.2022, 14:41
    #60154
basename
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Господа базоёбы, скок сюды
PaNik  08.06.2022, 14:39
[игнорируется]
Горбатый ёж  08.06.2022, 14:29
[игнорируется]
PaNik  08.06.2022, 14:27
[игнорируется]
Там имя файла с аттачментом. Если там null - аттачмента нет.
Откуда ты знаешь все общие случаи?
А что делать, если аттачмент в систему приаттачивается посредством православного копипаста, который о опять таки в общем случае может не иметь никакого имени файла (в отличии от богомерзкого драгэндропа)?
basename, что хранится в поле v1_attachment.name?
60149
...
Рейтинг: 0 / 0
09.06.2022, 14:46
    #60156
Горбатый ёж
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Господа базоёбы, скок сюды
Tammy Jo Saint Cloud  09.06.2022, 14:41
[игнорируется]
постгре
Эта не мелкая.
И всё равно я сомневаюсь, что замена left join на join может вызвать деградацию.
...
Рейтинг: 0 / 0
09.06.2022, 14:46
    #60157
basename
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Господа базоёбы, скок сюды
cat2  07.06.2022, 19:41
[игнорируется]
left join не нужен.
Просто JOIN.

И тогда не нужно будет и условие and v1_attachment.name is not null;. Такие записи сами отсекутся при выполнении on v1_post.id = v1_attachment.post_id
да просто c join отработакло так, как сказал кот
pasted_image.png
...
Рейтинг: 0 / 0
09.06.2022, 14:47
    #60158
Горбатый ёж
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Господа базоёбы, скок сюды
basename  09.06.2022, 14:36
[игнорируется]
Я так и не понял до сих пор чем плох конкретно мой запрос.
Тем, что ты используешь left join.
Тебе он не нужен, потому что ты ищешь вложения.
Замени left join на join и убери условие name is not null.
...
Рейтинг: 0 / 0
09.06.2022, 14:49
    #60159
basename
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Господа базоёбы, скок сюды
Горбатый ёж  09.06.2022, 14:47
[игнорируется]
basename  09.06.2022, 14:36
[игнорируется]
Я так и не понял до сих пор чем плох конкретно мой запрос.
Тем, что ты используешь left join.
Тебе он не нужен, потому что ты ищешь вложения.
Замени left join на join и убери условие name is not null.
ага, уже сделал. постом выше
...
Рейтинг: 0 / 0
09.06.2022, 14:52
    #60166
Горбатый ёж
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Господа базоёбы, скок сюды
basename [игнорируется] 

id пользователя указывай без апострофов, копейки конечно, но мало ли.
В апострофах строковые данные пишутся, а id там int.
...
Рейтинг: 0 / 0
Форумы / MySQL [закрыт для гостей] / Господа базоёбы, скок сюды / 25 сообщений из 242, страница 5 из 10
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (1): Анонимы (1)
Игнорируют тему (1): erbol
Читали форум (1): Анонимы (1)
Пользователи онлайн (24): Анонимы (13), паразит, IT-Клоп, Yandex Bot, Королева Жезлов, XEugene, s62 1 мин., Bing Bot 1 мин., Biene Maja 4 мин., Просто Трёп 6 мин., Горбатый ёж 7 мин., Разум вселенной 7 мин.
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]