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

@MasterZiv У меня новый вопрос появился, можешь пояснить в чем

разница между ними ?

вот смотри есть запрос который ты мне сегодня помог составить

SELECT u1.*, ua1.*
FROM users u1
join users_auth ua1 ON ua1.user_id = u1.id
join users u2 ON u2.id != u1.id
join users_auth ua2 ON ua2.user_id = u2.id
WHERE ua1.user_agent = ua2.user_agent
AND ua1.langs = ua2.langs
GROUP BY u1.id ORDER BY ua1.user_agent, ua1.langs

И есть другой запрос который подсказали

SELECT u0.username, u1.*
FROM users_auth AS u1, users_auth AS u2
LEFT join users AS u0
on u0.id = u2.user_id
WHERE u1.user_agent = u2.user_agent
AND u1.langs = u2.langs
AND u1.id != u2.id
ORDER BY u2.user_agent,u2.langs;

Попытаюсь объяснить в чем разница между ними.

Пример 1.
Как я думал до этого
1 запрос берет все записи FROM users u1
Далее берет уже и добавляет данные по joinам, не просто все записи а которые поподают под ON в join
join users_auth ua1 ON ua1.user_id = u1.id
join users u2 ON u2.id != u1.id
join users_auth ua2 ON ua2.user_id = u2.id
после чего через where отсекаем не нужное.
Далее сортируем


Пример 2.
2 запрос работает так
Берем все записи из таблицы FROM users_auth AS u1
Далее берем все записи users_auth AS u2 и подгоняем к ним через left join
LEFT join users AS u0
on u0.id = u2.user_id
Далее через where отсекаем не нужно и сортируем.

Может я вообще не верно рассуждаю, если не верно то в чем не верно и как это работает и какой запрос лучше и в чем отличие ???

Что это вообще такое FROM users_auth AS u1, users_auth AS u2 через запятую таблицы пречислять или это тот же самый join в движке как мне подсказали, тогда в чем между ними разница ?


Очень благодарен заранее.

3 ответов

16 просмотров

Второй запрос просто не совсем корректный, но не сильно, и записан не в канонической форме, так можно сказать. Там перемешаны ANSI и non-ANSI JOIN-ы. И LEFT JOIN тут не нужен, его не должно быть (но с ним тоже будет работать)

Что это вообще такое FROM users_auth AS u1, users_auth AS u2 через запятую таблицы пречислять или это тот же самый join в движке как мне подсказали, тогда в чем между ними разница ? Это и есть non-ANSI JOIN. Устаревшая конструкция, которую не нужно применять и тем более мешать с ANSI JOIN в одном запросе...

Все размышления о том, как какой запрос работает, бредовые, ибо не верны в корне. Ты не можешь вообще сказать, как он работает.

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

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

Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
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
Карта сайта