|
|
|
Как составить запрос с категориями, чтобы джоин был в зависимости от типа категории?
|
|||
|---|---|---|---|
|
#18+
Например есть таблица contragent, в ней поле contragent_type, на нее ссылаются две таблицы ur и fiz, нумерация по id сквозная. Нужно сделать джойн по той таблице, какой тип указан в поле contragent_type. contragent ur fiz id contragent_type id ur_name id fiz_name 1 ur 1 ООО "Рога" 2 ur 2 ООО "Копыта" 3 fiz 3 Иванов 4 fiz 4 Петров 5 ur 5 ООО "Хвосты" Для юр.лиц: Код: sql 1. 2. 3. Для физ.лиц: Код: sql 1. 2. 3. А как совместить их в одну таблицу, чтобы в поле contragent_name были и названия юр.лиц, и названия физ.лиц? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2015, 10:30:03 |
|
||
|
Как составить запрос с категориями, чтобы джоин был в зависимости от типа категории?
|
|||
|---|---|---|---|
|
#18+
svnvladНапример есть таблица contragent, в ней поле contragent_type, на нее ссылаются две таблицы ur и fiz, нумерация по id сквозная. Нужно сделать джойн по той таблице, какой тип указан в поле contragent_type. Код: plaintext 1. 2. 3. 4. 5. 6. Для юр.лиц: Код: sql 1. 2. 3. Для физ.лиц: Код: sql 1. 2. 3. А как совместить их в одну таблицу, чтобы в поле contragent_name были и названия юр.лиц, и названия физ.лиц? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2015, 10:31:00 |
|
||
|
Как составить запрос с категориями, чтобы джоин был в зависимости от типа категории?
|
|||
|---|---|---|---|
|
#18+
UNION ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2015, 10:39:34 |
|
||
|
Как составить запрос с категориями, чтобы джоин был в зависимости от типа категории?
|
|||
|---|---|---|---|
|
#18+
цеплять LEFT join-ом таблицы физиков и юриков к контрагентам. в селект листе сводить поля через coalesce ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2015, 10:39:52 |
|
||
|
Как составить запрос с категориями, чтобы джоин был в зависимости от типа категории?
|
|||
|---|---|---|---|
|
#18+
Добрый Э - Эхцеплять LEFT join-ом таблицы физиков и юриков к контрагентам. в селект листе сводить поля через coalesce зачем? чтобы увеличить обьём работы...мусклу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2015, 11:00:01 |
|
||
|
Как составить запрос с категориями, чтобы джоин был в зависимости от типа категории?
|
|||
|---|---|---|---|
|
#18+
alex564657498765453Добрый Э - Эхцеплять LEFT join-ом таблицы физиков и юриков к контрагентам. в селект листе сводить поля через coalesce зачем? чтобы увеличить обьём работы...мусклу.доо, лучше мы юнион влепим, чтобы создать темп-таблицу Поподробнее про "увеличение объёма работы", пожалуйста. Насколько я понимаю, у ТСа обе связи "КА-физики" и "КА-юрики" - один к одному. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2015, 11:10:48 |
|
||
|
Как составить запрос с категориями, чтобы джоин был в зависимости от типа категории?
|
|||
|---|---|---|---|
|
#18+
tangliralex564657498765453пропущено... зачем? чтобы увеличить обьём работы...мусклу.доо, лучше мы юнион влепим, чтобы создать темп-таблицу Поподробнее про "увеличение объёма работы", пожалуйста. Насколько я понимаю, у ТСа обе связи "КА-физики" и "КА-юрики" - один к одному. Один к одному. Там на самом деле более сложный запрос, не физики и юрики, а категории транспорта (их 4) и в селекте множество полей с IF и т.д. Если юнион делать, то получается, в каждому из запросов эту шапку надо повторять, будет 4 одинаковых шапки больших. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2015, 12:01:36 |
|
||
|
Как составить запрос с категориями, чтобы джоин был в зависимости от типа категории?
|
|||
|---|---|---|---|
|
#18+
tangliralex564657498765453пропущено... зачем? чтобы увеличить обьём работы...мусклу.доо, лучше мы юнион влепим, чтобы создать темп-таблицу Поподробнее про "увеличение объёма работы", пожалуйста. Насколько я понимаю, у ТСа обе связи "КА-физики" и "КА-юрики" - один к одному.Если взаимоисключающие поля, то именно left, вроде бы в современных бд он наконец работает ен медленее записи в старой нотации через "where ... = ...". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2015, 12:04:25 |
|
||
|
Как составить запрос с категориями, чтобы джоин был в зависимости от типа категории?
|
|||
|---|---|---|---|
|
#18+
svnvladtanglirпропущено... доо, лучше мы юнион влепим, чтобы создать темп-таблицу Поподробнее про "увеличение объёма работы", пожалуйста. Насколько я понимаю, у ТСа обе связи "КА-физики" и "КА-юрики" - один к одному. Один к одному. Там на самом деле более сложный запрос, не физики и юрики, а категории транспорта (их 4) и в селекте множество полей с IF и т.д. Если юнион делать, то получается, в каждому из запросов эту шапку надо повторять, будет 4 одинаковых шапки больших.Попробуй разные варианты, смотри производительность и подсказки оптимизатора. И зачем было приводить кастрированный пример? В БД очень всё конкретно должно настраиваться. Почти как когда на асме пишешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2015, 12:11:42 |
|
||
|
Как составить запрос с категориями, чтобы джоин был в зависимости от типа категории?
|
|||
|---|---|---|---|
|
#18+
Можно так написать, или NULL нельзя задать? Код: sql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2015, 13:37:50 |
|
||
|
Как составить запрос с категориями, чтобы джоин был в зависимости от типа категории?
|
|||
|---|---|---|---|
|
#18+
В общем, такой получился запрос. Стоит ли его пробовать переписывать на UNION-ы (4 штуки). Код: pascal 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2015, 14:55:52 |
|
||
|
Как составить запрос с категориями, чтобы джоин был в зависимости от типа категории?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2015, 14:57:21 |
|
||
|
Как составить запрос с категориями, чтобы джоин был в зависимости от типа категории?
|
|||
|---|---|---|---|
|
#18+
tangliralex564657498765453пропущено... зачем? чтобы увеличить обьём работы...мусклу.доо, лучше мы юнион влепим, чтобы создать темп-таблицу Поподробнее про "увеличение объёма работы", пожалуйста. Насколько я понимаю, у ТСа обе связи "КА-физики" и "КА-юрики" - один к одному. сдесь имеется моя тема, где была аналогичная ситуация. у меня денормализованная структура была, только там три поля было, и все ссылки в другое место. так вот юнион оказался быстрее. хотя я сам не верил, но тут посоветовал ктото и таки да, быстрее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2015, 20:45:30 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38877833&tid=1833580]: |
0ms |
get settings: |
5ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
44ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 333ms |

| 0 / 0 |
