powered by simpleCommunicator - 2.0.31     © 2024 Programmizd 02
Форумы / MySQL [закрыт для гостей] / Господа базоёбы, скок сюды
25 сообщений из 242, страница 5 из 10
Господа базоёбы, скок сюды
    #59206
Tammy Jo Saint Cloud
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это поше или очередное его подрожалово?
...
Рейтинг: 0 / 0
Господа базоёбы, скок сюды
    #59213
паразит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tammy Jo Saint Cloud  08.06.2022, 12:30
[игнорируется]
это поше или очередное его подрожалово?
Пашка не такой борзый
...
Рейтинг: 0 / 0
Господа базоёбы, скок сюды
    #59257
PaNik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Горбатый ёж  08.06.2022, 08:04
[игнорируется]
Это конечно такой хитрый лайфхак, использование поля not null для имитации джойна при использовании лефт джойна, но в общем случае это не работает.
Чего???
Почему не работает???
...
Рейтинг: 0 / 0
Господа базоёбы, скок сюды
    #59261
PaNik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Горбатый ёж  08.06.2022, 10:57
[игнорируется]
включить сию заебатую возможность используя хинт.
Ога, блеать, навтыкают хинтов, потом таблица разрастается и наступает пиздец
...
Рейтинг: 0 / 0
Господа базоёбы, скок сюды
    #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
Господа базоёбы, скок сюды
    #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
Господа базоёбы, скок сюды
    #59335
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaNik  08.06.2022, 13:23
[игнорируется]
Горбатый ёж  08.06.2022, 08:04
[игнорируется]
Это конечно такой хитрый лайфхак, использование поля not null для имитации джойна при использовании лефт джойна, но в общем случае это не работает.
Чего???
Почему не работает???
Потому что в общем случае поле name в таблице аттачментов может быть null и ты потеряешь аттачмент.
...
Рейтинг: 0 / 0
Господа базоёбы, скок сюды
    #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
Господа базоёбы, скок сюды
    #59344
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaNik  08.06.2022, 14:27
[игнорируется]
Там имя файла с аттачментом. Если там null - аттачмента нет.
Откуда ты знаешь все общие случаи?
А что делать, если аттачмент в систему приаттачивается посредством православного копипаста, который о опять таки в общем случае может не иметь никакого имени файла (в отличии от богомерзкого драгэндропа)?
...
Рейтинг: 0 / 0
Господа базоёбы, скок сюды
    #59356
PaNik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Горбатый ёж  08.06.2022, 14:29
[игнорируется]
PaNik  08.06.2022, 14:27
[игнорируется]
Там имя файла с аттачментом. Если там null - аттачмента нет.
Откуда ты знаешь все общие случаи?
А что делать, если аттачмент в систему приаттачивается посредством православного копипаста, который о опять таки в общем случае может не иметь никакого имени файла (в отличии от богомерзкого драгэндропа)?
basename, что хранится в поле v1_attachment.name?
...
Рейтинг: 0 / 0
Господа базоёбы, скок сюды
    #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
Господа базоёбы, скок сюды
    #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
Господа базоёбы, скок сюды
    #59394
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaNik  08.06.2022, 14:49
[игнорируется]
Вполне рабочий вариант.
Не в общем случае.
...
Рейтинг: 0 / 0
Господа базоёбы, скок сюды
    #59420
PaNik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Горбатый ёж  08.06.2022, 15:21
[игнорируется]
PaNik  08.06.2022, 14:49
[игнорируется]
Вполне рабочий вариант.
Не в общем случае.
"Общие случаи" часто пагубно сказываться на производительности в данном конкретном случае
...
Рейтинг: 0 / 0
Господа базоёбы, скок сюды
    #59815
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaNik  08.06.2022, 16:28
[игнорируется]
Горбатый ёж  08.06.2022, 15:21
[игнорируется]
PaNik  08.06.2022, 14:49
[игнорируется]
Вполне рабочий вариант.
Не в общем случае.
"Общие случаи" часто пагубно сказываться на производительности в данном конкретном случае
Интересно и как может пагубно сказаться на производительности замена left join на join?
...
Рейтинг: 0 / 0
Господа базоёбы, скок сюды
    #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
Господа базоёбы, скок сюды
    #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
Господа базоёбы, скок сюды
    #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
Господа базоёбы, скок сюды
    #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
Господа базоёбы, скок сюды
    #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
Господа базоёбы, скок сюды
    #60156
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tammy Jo Saint Cloud  09.06.2022, 14:41
[игнорируется]
постгре
Эта не мелкая.
И всё равно я сомневаюсь, что замена left join на join может вызвать деградацию.
...
Рейтинг: 0 / 0
Господа базоёбы, скок сюды
    #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
Господа базоёбы, скок сюды
    #60158
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
basename  09.06.2022, 14:36
[игнорируется]
Я так и не понял до сих пор чем плох конкретно мой запрос.
Тем, что ты используешь left join.
Тебе он не нужен, потому что ты ищешь вложения.
Замени left join на join и убери условие name is not null.
...
Рейтинг: 0 / 0
Господа базоёбы, скок сюды
    #60159
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Горбатый ёж  09.06.2022, 14:47
[игнорируется]
basename  09.06.2022, 14:36
[игнорируется]
Я так и не понял до сих пор чем плох конкретно мой запрос.
Тем, что ты используешь left join.
Тебе он не нужен, потому что ты ищешь вложения.
Замени left join на join и убери условие name is not null.
ага, уже сделал. постом выше
...
Рейтинг: 0 / 0
Господа базоёбы, скок сюды
    #60166
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
basename [игнорируется] 

id пользователя указывай без апострофов, копейки конечно, но мало ли.
В апострофах строковые данные пишутся, а id там int.
...
Рейтинг: 0 / 0
25 сообщений из 242, страница 5 из 10
Форумы / MySQL [закрыт для гостей] / Господа базоёбы, скок сюды
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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