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

27 просмотров

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

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

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

Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Вопрос на перед, на следующую пятницу. Сколько строк кода можно вешать на одного программиста, понятно что если проект хорошо написан то можно и миллион. Но есть же где то пре...
AlekseyK Kluchnikov
31
Немного оффтопа: а кто на чем сидит для осдева в плане ide/редактора? Последнее время сидел на vscode, но я его прям не могу нормально воспринимать, перешел на сlion, но меня...
Evg Resh
29
На чём в основном щас пишут мини апы? Vuejs?
Goot evening Not everyone
6
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
День добрый, подскажите пожалуйста, есть ли какой-то способ сказать ребару не компилировать определённое приложение? Всю доку их перечиатл ничего подобного не нашёл
Кирилл
14
Вопрос: Здравствуйте! У меня возникла проблема с использованием плагина Mall в OctoberCMS. Я использую все файлы и компоненты в их исходном виде, без изменений. Однако на стр...
𐩱𐩪𐩣𐩱𐩲𐩺𐩡
8
Я правильно понимаю что нет способов получить список ожидающих заявок на вступление в группу с помощью бота из mtproto?
Шамиль Прилов
9
А какие существуют способы обработки ошибок выделения памяти в ядре? Т.е., допустим, есть функция, которая возвращает адрес свободной страницы в физической памяти и диапазон в...
disba1ancer
51
Вот объясните, как это работает: Вот есть допустим unix-подобная система, и программа запускает допустим printf или fork, как это передается ядру, и как оно обрабатывать начин...
Егор
14
Карта сайта