72 похожих чатов

WITH ( SELECT DISTINCT tb1.hash

FROM table1 AS tb1
WHERE tb1.from = ':from'
OR tb1.to = ':to'
) AS hashes
SELECT *
FROM table2 AS tb2
INNER JOIN table3 tb3 on tb2.hash = tb3.hash
WHERE tb2.hash IN hashes
AND tb3.values IN (1)
ORDER BY hash

Вот такой запрос работает

просто я хочу убрать отсюда джоин и сделать на селектах с подзапросом - можно как-то? во втором блоке где таблица 2 и 3

подскажете как?

16 ответов

10 просмотров

очень плохой запрос, если в table1 много записей будет - это просто смерть...

Sweety- Автор вопроса

Я не могу сказать как правильно сделать поскольку я не знаю что надо сделать

Sweety- Автор вопроса
Ilya Zviagin
Я не могу сказать как правильно сделать поскольку ...

взять из таблицы 1 хеши опираясь на значения ФРОМ и ТУ потом пойти в таблицу 2 и найти те записи у которых хеши совпадают и потом в 3 таблицу тоже сопоставить с хешами из первой

Sweety- Автор вопроса
Ilya Zviagin
select * from HASHES h join table1 t1 on ... join ...

я уже сделал - выше показал как у меня задача убрать джоин )

Но это вообще не стандартный (или даже обычный) SQL — что это за СУБД? И зачем Вам это нужно? И да, если в каждой записи результаты нужны поля и из table2, и из table3, то JOIN — самый адекватный способ их получить (в большинстве RDBMS)...

Sweety- Автор вопроса
Yaroslav Schekin
Но это вообще не стандартный (или даже обычный) SQ...

Clickhouse просто джоин медленно отрабатывает - поэтому на селектах делал на них быстрее намного

Sweety
Clickhouse просто джоин медленно отрабатывает - п...

А, это вариант "планировщик запросов не нужен, жизнь и так прекрасна", понятно. ;) Так от чего конкретно Вам нужно избавиться (и учтите, что вряд ли тут многие знают vendor-specific синтаксис ClickHouse, так что Вам придётся адаптировать ответы с нормального SQL (если таковые будут))?

Yaroslav Schekin
А, это вариант "планировщик запросов не нужен, жиз...

ТОЧНО ему нужно избавится от SELECT DISTINCT ... WHERE a = ? or b = ?

Кто его знает... То, что я писал про "планировщик" ClickHouse — не шутка, понимаете? "CH does not have proper cost-based query optimizer yet. It's your responsibility to write SQL in proper way." © разработчики

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

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

Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
Добрый день. Созданию отношения таблиц для учёта кораблей, их движения между точками (портами) согласно расписания. Терзают сомнения в правильном ли направлении двигаюсь 😅 1...
Aleksey
1
у меня такой вопрос про память в x86 возник, может кто пояснить?.. у процессора есть (как минимум) 3 типа адресов (названия "п1", "п2", "п3" --- мои, чтобы проще было дальше)...
Toideng
10
Привет. Наверняка у кого-нибудь здесь есть опыт работы с трекерами (встроенными в OpenCV (KCF) или абстрагированными) на одноплатниках. Если не рассматривать малинку и други...
Georgy Makarov
4
Всем привет, Добавил в плагин определение user agent public function registerMarkupTags() { return [ 'filters' => [ 'staticPage' => ['RainLab\Pages\Cl...
John Norton Kruger
3
А чего при переходе с 2 на 3 все что в билдере сделано тютю?
Денис Александрович
5
И всё-таки спрошу насчет такого вариант, сомнительно или нет? (Windows стоять не будет)
Georgy Makarov
5
Я колись ставив гуглу антиспам 3.0, може і норм, але мені не дуже зайшло. Теж думав тиждень, що його і куди. Зупинився на трех варіантах відразу всі три і включив 1. Перевір...
𝓔𝓾𝓰𝓮𝓷𝓮𝓥 J
2
Приветствую. Есть N видео объектов (фильмы). Часть полной длины просмотра а часть короткие ( обрезаны титры). Задача найти идентичные фильмы. Я не в курсе, есть ли аналог шаз...
Nikolay Chudinov
7
У них там что-то своё же вроде!?
Евгений Данилов
5
Карта сайта