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 ответов

31 просмотр

очень плохой запрос, если в 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." © разработчики

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

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

Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
5
А в каком формате фреймы? Сам формат сейчас придумываешь, или что-то готовое нужно распарсить?
Okhsunrog
5
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Раз начали говорить про embassy, то присоединюсь со своими парой вопросов. 1) Есть ли сопоставимые аналоги для асинхронного кода в emdebbed? 2) Можно ли внутри задач embassy ...
NI_isx
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Карта сайта