|
MySQL / Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
left join не нужен. Просто JOIN. И тогда не нужно будет и условие and v1_attachment.name is not null;. Такие записи сами отсекутся при выполнении on v1_post.id = v1_attachment.post_id Это с какого суахили? Я понимаю, что в данном случае имя у атачмента вряд ли будет null, но как оно связано с джойном и лефт джойном, мне понять не суждено. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 21:30 |
|
MySQL / Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Почему нет? Зачем тебе они, если ты аттачи ищешь? И зачем тебе показывать посты, которые не привязаны к топикам (с лефтом именно так ты и делаешь), если это как минимум странно? Как там планы в таком случае это майскуль построит ХЗ. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 21:44 |
|
MySQL / Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
basename [игнорируется] И я не уверен, что твоё условие attach.name is not null имеет смысл, как я понимаю у деды любой аттач имеет имя. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 21:45 |
|
MySQL / Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Он же все равно сканит таблицу полностью, потом селект делает. Так? По уму может выбрать посты по юзер_ид, а потом уже к ним присоединить всё остальное. В любом случае, если ты ищешь аттачи, то лефт убирай. Ну я я бы всё равно начал с аттачей,как бы привык начинать оттуда, что ищу. Что-то вроде Код: SQL 1. 2. 3. 4.
... |
|||
:
Изменено: 07.06.2022, 21:52 - Горбатый ёж
Нравится:
Не нравится:
|
|||
07.06.2022, 21:50 |
|
MySQL / Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Без него просто показывает в столбце - null. Короче, примеры надо показывать. Значит я ошибаюсь. Потому что лефт джойн используется. ... |
|||
:
Изменено: 07.06.2022, 21:52 - Горбатый ёж
Нравится:
Не нравится:
|
|||
07.06.2022, 21:51 |
|
MySQL / Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
left join не нужен. Просто JOIN. И тогда не нужно будет и условие and v1_attachment.name is not null;. Такие записи сами отсекутся при выполнении on v1_post.id = v1_attachment.post_id Это с какого суахили? Я понимаю, что в данном случае имя у атачмента вряд ли будет null, но как оно связано с джойном и лефт джойном, мне понять не суждено. Это конечно такой хитрый лайфхак, использование поля not null для имитации джойна при использовании лефт джойна, но в общем случае это не работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2022, 08:04 |
|
MySQL / Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
У Бази в первоначальном запросе на таблицу постов накладывается ограничение по юзер_ид ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2022, 08:06 |
|
MySQL / Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
значит ты мог получить в одной теме несколько постов - если в посте было несколько аттачей ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2022, 08:09 |
|
MySQL / Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Ждите 39 минут и разберёте эту задачку ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2022, 08:27 |
|
MySQL / Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Это конечно такой хитрый лайфхак, использование поля not null для имитации джойна при использовании лефт джойна, но в общем случае это не работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2022, 10:50 |
|
MySQL / Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Так-то лефтами можно выстраивать порядок соединения выборки нихуя подобного еббадь Впрочем сейчас тоже есть возможность включить сию заебатую возможность используя хинт. ЗЫ сцуко, как же меня заебал этот хинт во всех подряд запросах, даже если там всего 2 таблицы соединяются. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2022, 10:57 |
|
MySQL / Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
это пидорская техника зачем быть пидором? Пока ни один ревьювер не завернул конкретно это исправление. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2022, 11:00 |
|
MySQL / Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Ещё не очень понятно, зачем значение для user_id передавать в апострофах? Если это число, то и передавать его числом. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2022, 11:01 |
|
MySQL / Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
может там тип чар у паля заипенел Но мне кажется это базя просто перестраховался или пример неправильно понял. Скорее всего для id дед использовал автоинкрементное поле, но оно вряд ли строковое. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2022, 11:22 |
|
MySQL / Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Потому что в общем случае поле name в таблице аттачментов может быть null и ты потеряешь аттачмент. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2022, 14:24 |
|
MySQL / Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Там имя файла с аттачментом. Если там null - аттачмента нет. А что делать, если аттачмент в систему приаттачивается посредством православного копипаста, который о опять таки в общем случае может не иметь никакого имени файла (в отличии от богомерзкого драгэндропа)? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2022, 14:29 |
|
MySQL / Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Там имя файла с аттачментом. Если там null - аттачмента нет. А что делать, если аттачмент в систему приаттачивается посредством православного копипаста, который о опять таки в общем случае может не иметь никакого имени файла (в отличии от богомерзкого драгэндропа)? И вообще использовать такое вместо простого джойна - это странно. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2022, 14:40 |
|
MySQL / Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Вполне рабочий вариант. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2022, 15:21 |
|
MySQL / Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Интересно и как может пагубно сказаться на производительности замена left join на join? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 08:15 |
|
MySQL / Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
постгре И всё равно я сомневаюсь, что замена left join на join может вызвать деградацию. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 14:46 |
|
MySQL / Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Я так и не понял до сих пор чем плох конкретно мой запрос. Тебе он не нужен, потому что ты ищешь вложения. Замени left join на join и убери условие name is not null. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 14:47 |
|
MySQL / Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
basename [игнорируется] id пользователя указывай без апострофов, копейки конечно, но мало ли. В апострофах строковые данные пишутся, а id там int. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 14:52 |
|
MySQL / Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Собственно поле name может быть null в аттачментах, поэтому с точки зрения БД ограничение name is not null может привести к потере аттачментов. В остальном так и есть, простыми джойнами соединять и нормально отработает, потому что аттачмент дожен быть привязан к посту, пост к топику, а топик к форуму, на полях там стоит признак not null. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 14:57 |
|
MySQL / Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
basename [игнорируется] Если тебе надо будет найти просто все посты автора, заодно посмотреть аттачменты, то делаешь left join на соединение поста и аттачмента. ... |
|||
:
Изменено: 09.06.2022, 14:59 - Горбатый ёж
Нравится:
Не нравится:
|
|||
09.06.2022, 14:59 |
|
|
Start [/forum/search.php?do_search=1&tid=2074&author_mode=wrote_post&author=%D0%93%D0%BE%D1%80%D0%B1%D0%B0%D1%82%D1%8B%D0%B9%20%D1%91%D0%B6&start_from=60171]: |
0ms |
get settings: |
0ms |
get forum list: |
3ms |
searching: |
7ms |
get settings: |
0ms |
get forum list: |
3ms |
get topic data: |
2ms |
check forum access: |
0ms |
check topic access: |
0ms |
get forum data: |
0ms |
get found posts: |
42ms |
track hit: |
26ms |
get online users: |
72ms |
check new: |
1ms |
others: | 249ms |
total: | 405ms |
0 / 0 |