логике в join используется between ? Гуглил, подобное было только с INNER JOIN. Ну или использовался оператор < или >
Все записи из users будут сджойнены с множеством из weeks которые попадают под условие из between. Или так: для каждого пользователя будет срез недель User weeks 1 1 1 2 1 3 ... ... 1 17 2 1 2 2 ... ... 2 17
А можно какую-то паралель провести с тем, если бы просто через равно делать ? А то я не сильно понял. По какому принципу будут приджоинены, если они не соединены через тот же равно. Как тогда корректное соединение может быть ? В примере, который я видел с больше или меньше, там было также не очень понятно, но всё же более ясно чем с between
Условие по которому будет проходить соединение внутри определяется как true\false Т.к. на левой части (users) нет никаких проверок, то слева всегда true Теперь справа стоит between в качестве условия - это означает, что справа будут выбраны все записи которые попадают под условие оператора (between), или по другому все id -шики недель между первым значением переменной и она же + 16 В итоге получаем 2 датасета: Все пользователи (на них не было никаких ограничений) + id недели между between (включая крайние значения) После делается декартово произведение 2х датасетов. Или каждому пользователю сопоставляется набор всех id недель справа.
Join по between - очень странная операция, часто похоже больше на ошибку проектирования БД
Обсуждают сегодня