|
|
|
проблема с UNION
|
|||
|---|---|---|---|
|
#18+
Добрый день. таблица objects id, name, priority, group_id 1, объект1, 90, 0 2, объект2, 50, 0 3, объект3, 10, 1 4, объект4, 10, 1 таблица groups id, name, priority 1, группа1, 80 Нужно из objects вывести объекты с группировкой по group_id. Но те, объекты, у которых group_id = 0, группировать не нужно. При этом нужно сортировать результат по priority и использовать LIMIT для постраничной разбивки. т.е. должен быть такой результат вывода на страницу: объект1 группа1 объект2 Пробую использовать UNION: ( SELECT SQL_CALC_FOUND_ROWS object.*, objects.priority AS full_priority WHERE group_id = 0 ORDER BY priority DESC ) UNION ALL ( SELECT object.*, groups.priority AS full_priority WHERE group_id != 0 GROUP BY group_id ORDER BY priority DESC ) ORDER BY full_priority DESC LIMIT 0, 2 Далее в переборке идет запрос для получения инфы о группе, если group_id != 0 и всё выводится в нужном виде с постраничной разбивкой. НО! Если во втором запросе результатов не найдено(допустим, что у всех objects.group_id = 0), то возвращается пустой общий результат. Не понимаю, почему так происходит? Буду благодарен за помощь. Может быть подскажете более лучшее решение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2014, 15:35:16 |
|
||
|
проблема с UNION
|
|||
|---|---|---|---|
|
#18+
Я фигею в этом зоопарке! как можно вообще что-то получить осмысленное при тотальном отсутствии секции FROM? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2014, 15:50:39 |
|
||
|
проблема с UNION
|
|||
|---|---|---|---|
|
#18+
Сорри, поправляю Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Модератор: Пожалуйста, пользуйтесь тегами для оформления своих постов. Читать серые портянки никому не интересно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2014, 16:15:13 |
|
||
|
проблема с UNION
|
|||
|---|---|---|---|
|
#18+
Вобще, это конечно упрощенная схема таблиц, и оказывается тут все работает нормально. Значит что-то не так в моем рабочем варианте. Буду проверять, может и не стоило тему создавать. Вопрос пока снимается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2014, 16:26:51 |
|
||
|
проблема с UNION
|
|||
|---|---|---|---|
|
#18+
Код: 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. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. allexpНО! Если во втором запросе результатов не найдено(допустим, что у всех objects.group_id = 0), то возвращается пустой общий результат. Следи за руками... Код: 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. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2014, 16:27:38 |
|
||
|
проблема с UNION
|
|||
|---|---|---|---|
|
#18+
Извиняюсь за беспокойство. Да, действительно, с запросом все в порядке. Причина в моей невнимательности, в рабочей версии запрос длинный многострочный, просто случайно получилось, что первая часть запроса терялась, а работала только вторая. Тему можно закрыть/снести. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2014, 16:45:16 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38841882&tid=1833764]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
142ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 267ms |
| total: | 504ms |

| 0 / 0 |
