SQL LEFT JOIN по датам и равные ключи словаря Python

LEFT JOIN сопоставит каждой строке t1 все более ранние даты t2. Python-словарь выведет {True: 100500}: True, 1 и 1.0 равны как ключи.

Короткий ответ

Что ответить на собеседовании

LEFT JOIN сопоставит каждой строке t1 все более ранние даты t2. Python-словарь выведет {True: 100500}: True, 1 и 1.0 равны как ключи.

Подробный разбор

Ответ с пояснениями

Условие

SELECT * FROM table1 AS t1 LEFT JOIN table2 AS t2 ON t1.date_start > t2.date_start

d = { True: 42, 1: 2, 1.0: 100500 } print(d)

Ответ

LEFT JOIN сопоставит каждой строке t1 все более ранние даты t2. Python-словарь выведет {True: 100500}: True, 1 и 1.0 равны как ключи.

Для SQL нет исходных таблиц, поэтому точный набор строк неизвестен. На каждую t1 попадут все t2, для которых t1.date_start > t2.date_start; при отсутствии совпадений справа будут NULL. Сравнения с NULL не дают true, порядок без ORDER BY не гарантирован.

В Python True == 1 == 1.0, и их хеши совпадают. Три записи литерала обновляют одно значение, сохраняя первый ключ True и последнее значение 100500. Это не три независимых ключа разных типов.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее