|
join один ко многим
|
|||
---|---|---|---|
#18+
есть табличка 1 и табличка 2 в табличке 1 колонка ID уникальна во второй табличке ID множественна связь по ID. Во второй табличке записи отличаются по штампу времени Как заджоинить так чтобы выбрались левые записи + записи с максимальным временем из правой таблицы. Дайте пример плиз. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2021, 12:59 |
|
join один ко многим
|
|||
---|---|---|---|
#18+
unq, select max() ... group by tbl1.id ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2021, 13:04 |
|
join один ко многим
|
|||
---|---|---|---|
#18+
unq, Код: sql 1. 2. 3. 4. 5. 6.
Строго обязательно при этом иметь индекс на второй таблице (ID, Date). Желательно же (ID, Date desc). ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2021, 13:09 |
|
join один ко многим
|
|||
---|---|---|---|
#18+
unq, сам себе отвечу, наверн так поправьте если есть ошибка Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2021, 13:10 |
|
join один ко многим
|
|||
---|---|---|---|
#18+
Спасибо всем за быстрые ответы! вариант с join срабатывает за ~8мс вариант с apply за ~35мс остановлюсь пожалуй на join ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2021, 13:21 |
|
join один ко многим
|
|||
---|---|---|---|
#18+
unq Спасибо всем за быстрые ответы! вариант с join срабатывает за ~8мс вариант с apply за ~35мс остановлюсь пожалуй на join А индексы у вас есть или нет? А то как-то крайне странно выходит, что агрегатная функция отрабатывает быстрее, чем проход по узлам индекса. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2021, 13:24 |
|
join один ко многим
|
|||
---|---|---|---|
#18+
Кесарь, Слева ID и Name справа ID и RowID ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2021, 13:38 |
|
join один ко многим
|
|||
---|---|---|---|
#18+
unq Кесарь, Слева ID и Name справа ID и RowID Если задача регулярна и важна, сделайте индекс (ID, Date desc). Увидите эффект сразу. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2021, 13:54 |
|
join один ко многим
|
|||
---|---|---|---|
#18+
Кесарь, Спасибо, попробую ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2021, 14:19 |
|
join один ко многим
|
|||
---|---|---|---|
#18+
Кесарь unq Кесарь, Слева ID и Name справа ID и RowID Если задача регулярна и важна, сделайте индекс (ID, Date desc). Увидите эффект сразу. Не увидит. Писание коррелированных запросов - высокое искусство. Но они ничем, кроме неочевидности, не хуже apply. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2021, 14:26 |
|
join один ко многим
|
|||
---|---|---|---|
#18+
unq Кесарь, Спасибо, попробую Кстати, вы тут упомянули для правой таблицы RowID. Так вот, если у вас поле с датой однозначно логически связано с этим RowID (например дата - это датавремя вставки записи), то можете попробовать заменить дату на это РоуИД и в запросах, и в индексах. Если РоуИД у вас ИНТ, то будет выигрыш и по скорости, и по размеру индекса (по сравнению с дейттайм, конечно, а не дейт). ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2021, 14:30 |
|
|
start [/forum/topic.php?fid=46&fpage=22&tid=1684609]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 145ms |
0 / 0 |