|
|
|
LEFT JOIN + WHERE не дружит с derived таблицами
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Смысл derived таблицы "v" - список дней-дат для выбранного месяца и года (если есть более элегатное решение без UNION и без временных-постоянных таблиц - welcome please). Стоит убрать WHERE - все появляется как надо - то есть все 29 дней февраля с некоторыми записями из rs_sched. Как только добавляю WHERE, ограничивающий записи из rs_sched - получаю только две записи, которые есть в rs_sched. И что это за LEFT JOIN такой и что с этим делать? PS: версия 5.5.44-37.3-log ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2016, 01:50 |
|
||
|
LEFT JOIN + WHERE не дружит с derived таблицами
|
|||
|---|---|---|---|
|
#18+
_Промешан_ Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. К чему эти навороты? Почему не так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2016, 02:02 |
|
||
|
LEFT JOIN + WHERE не дружит с derived таблицами
|
|||
|---|---|---|---|
|
#18+
_Промешан_Стоит убрать WHERE - все появляется как надо - то есть все 29 дней февраля с некоторыми записями из rs_sched. Как только добавляю WHERE, ограничивающий записи из rs_sched - получаю только две записи, которые есть в rs_sched. И что это за LEFT JOIN такой и что с этим делать?_Промешан_ Код: sql 1. На самом деле это означает вот это: Код: sql 1. т.к. сравнение NULL с числом дает ложь. Если вам нужно, чтобы в соединении участвовали только записи с r.centerid = 0, то это условие нужно писать в условие соединения, т.е. в ON. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2016, 02:06 |
|
||
|
LEFT JOIN + WHERE не дружит с derived таблицами
|
|||
|---|---|---|---|
|
#18+
miksoft, ну и нет смысла писать что-то в WHERe кроме is null, is not null на таблицу, если с ней делается LEFT JOIN, он автоматом превращается в INNER JOIN. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2016, 08:04 |
|
||
|
LEFT JOIN + WHERE не дружит с derived таблицами
|
|||
|---|---|---|---|
|
#18+
Хм... действительно. Почему-то я думал, что это правило будет относиться только к ограничиваемой таблице, а не ко всему результирующему выбору. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2016, 16:59 |
|
||
|
LEFT JOIN + WHERE не дружит с derived таблицами
|
|||
|---|---|---|---|
|
#18+
_Промешан_Хм... действительно. Почему-то я думал, что это правило будет относиться только к ограничиваемой таблице, а не ко всему результирующему выбору. Спасибо. К ограничиваемой таблице оно будет относится только внутри фразы ... JOIN ON ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2016, 17:29 |
|
||
|
LEFT JOIN + WHERE не дружит с derived таблицами
|
|||
|---|---|---|---|
|
#18+
MasterZiv_Промешан_Хм... действительно. Почему-то я думал, что это правило будет относиться только к ограничиваемой таблице, а не ко всему результирующему выбору. Спасибо. К ограничиваемой таблице оно будет относится только внутри фразы ... JOIN ON Да, это я уже осознал :) Но спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2016, 17:44 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=112&tid=1832191]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
63ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
| others: | 236ms |
| total: | 387ms |

| 0 / 0 |
