|
|
|
join таблицы и collection
|
|||
|---|---|---|---|
|
#18+
Привет всем! Нужно связывать две таблицы поразному в зависимости от параметров. В одном случае из одной таблицы нужны все записи, в другом из нее же ни одной. Так как будто она пустая. sys2_store( store_id, name ) sys2_company( comapny_id, name ) store_mapping( sys1_store_id, sys2_company_id, sys2_store_id ) invoices ( id, store_id, ... ) Нужно перекодировать invoices store_id в sys2_comapny.name, sys2_store.name. Но, имеется необходимость перекодировния как с использованием sys2_company_id так и без оного. Что-то вроде select i.id, c.name, s.name from invoices i left join store_mapping sm on i.store_id = sm.sys1_store_id and sm.sys2_store_id is not null left join sys2_company c on sm.sys2_company_id = c.company_id join sys2_store s on sm.sys2_store_id = s.store_id Это работает и всегда использует company_id если таблица имеет записи. Но клиент хочет иметь возможность, одним флагом отключать ее и при этом оставлять в ней записи. Динамическая генерация запроса нежелательна, так как таких отключаемых условий может быть несколько и количество их комбинаций соответственно велико. Что-то мне не хочется клеить строки, так как запрос уже монстрообразный. Я думал, вычитывать sys2_company в коллекцию и связывать ее с таблицей. Что-то, не клеится, торможу уже конкретно... :-(( Можно было бы ограничить как-то чтение флагом, но Oracle не дает. from ... sys2_company ... where UseCompany is null -- all records or cpmapny_id is not null error undefined column UseCompany или что-то в этом роде. Буду рад любым предложениям, так как время не ждет. Mike ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2003, 04:57 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=32130585&tid=1991229]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
167ms |
get topic data: |
8ms |
get forum data: |
6ms |
get page messages: |
26ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 452ms |

| 0 / 0 |
