Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Inclusion list - как join-нить с минимальными усилиями?
|
|||
|---|---|---|---|
|
#18+
Есть таблица A, есть таблица "включений" (соответствий) для A - всё очень упрощено. Нужно так заджойнить эти 2 таблицы, чтобы выполнялось следующее: 1) если есть соответствия A в inclusion - выбираются только они 2) если в inclusion нету соответствий - выбираются все из A Неужели тут без union, exists, и подобной хрени не обойтись? :( p.s. для таблицы "ИСключений" (есть у меня и такая) всё просто, а вот включения... :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2008, 15:14 |
|
||
|
Inclusion list - как join-нить с минимальными усилиями?
|
|||
|---|---|---|---|
|
#18+
Может, всё же ddl таблиц приведёте с примером данных и того, что получить надо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2008, 15:59 |
|
||
|
Inclusion list - как join-нить с минимальными усилиями?
|
|||
|---|---|---|---|
|
#18+
Боюсь, что реальные таблицы сюда не поставлю - там устрашающе много полей, связей, зависимостей. Поэтому я решил на простых примерах. Ну, скажем, так. CREATE TABLE TEST.A ( ID INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1, NO CACHE, NO MINVALUE, NO MAXVALUE, NO CYCLE, ORDER), NAME VARCHAR(20) NOT NULL ) IN USERSPACE1; CREATE TABLE TEST.A_INCL ( ID INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1, NO CACHE, NO MINVALUE, NO MAXVALUE, NO CYCLE, ORDER), A_ID INTEGER NOT NULL ) IN USERSPACE1; ALTER TABLE TEST.A ADD CONSTRAINT PK_A PRIMARY KEY (ID); ALTER TABLE TEST.A_INCL ADD CONSTRAINT PK_A_INCL PRIMARY KEY (ID); ALTER TABLE TEST.A_INCL ADD CONSTRAINT FK_A FOREIGN KEY (A_ID) REFERENCES TEST.A (ID) ON DELETE CASCADE ON UPDATE NO ACTION; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2008, 16:31 |
|
||
|
Inclusion list - как join-нить с минимальными усилиями?
|
|||
|---|---|---|---|
|
#18+
На самом деле A_INCL - это таблица связей: т.е. она включает пары (A, B), где B - еще одна сущность. Для простоты я ключ B убрал... Должно работать так 1) A содержит A1, A2, A3 A_INCL содержит пары (A1, B1), (A1, B2), (A3, B1) -> из A надо выбрать только A1 и A3 2) A содержит A1, A2, A3 A_INCL не содержит записей -> A_INCL игнорируется и из A выбираются все Ax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2008, 16:36 |
|
||
|
Inclusion list - как join-нить с минимальными усилиями?
|
|||
|---|---|---|---|
|
#18+
NafigatorНа самом деле A_INCL - это таблица связей: т.е. она включает пары (A, B), где B - еще одна сущность. Для простоты я ключ B убрал... Должно работать так 1) A содержит A1, A2, A3 A_INCL содержит пары (A1, B1), (A1, B2), (A3, B1) -> из A надо выбрать только A1 и A3 2) A содержит A1, A2, A3 A_INCL не содержит записей -> A_INCL игнорируется и из A выбираются все Ax Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2008, 16:53 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=35596187&tid=1603640]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
111ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
| others: | 251ms |
| total: | 458ms |

| 0 / 0 |
