Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / как сделать Select / 3 сообщений из 3, страница 1 из 1
20.11.2006, 13:35
    #34140799
petsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как сделать Select
Здравствуйте коллеги. Вот есть проблема, что-то не пойму в чем дело. Есть 2 таблицы - providers и srvproviders. У providers primary key по двум полям - (bdcode и provider). У srvproviders должен быть внешний ключ по этим полям со ссылкой на providers. Попытка его установить не получается.

[IBM][CLI Driver][DB2/NT] SQL0667N Нельзя создать внешний ключ (FOREIGN KEY) "PROVIDERS_FK1", так как таблица содержит строки со значениями внешних ключей, которых нет в исходном ключе исходной таблицы. SQLSTATE=23520

Чтобы удалить записи, которые не дают сделать внешний ключ в табл. srvproviders даю select:

SELECT DISTINCT S.BDCODE, S.PROVIDER
FROM SRVPROVIDERS S, PROVIDERS P
WHERE S.BDCODE<>P.BDCODE AND S.PROVIDER<>P.PROVIDER;

Возвращает наборы записей. Когда даю
select * from providers where bdcode = x and provider = y; где x и y - значения из первого набора - такие записи в providers есть.
Подскажите, если не трудно, как все-таки корректно выбрать записи по 2-м полям в подчиненной таблице, которых по этим полям нет в родительской. Премного блягодарен.
...
Рейтинг: 0 / 0
20.11.2006, 13:46
    #34140829
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как сделать Select
Добрый день!

Отобрать все комбинации таких записей можно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
SELECT DISTINCT S.BDCODE, S.PROVIDER
FROM SRVPROVIDERS S
WHERE NOT EXISTS
(
SELECT  1 
FROM PROVIDERS P
WHERE S.BDCODE=P.BDCODE AND S.PROVIDER=P.PROVIDER
);

ЗЫ:
Что с моим бывшим отделом случилось?
Куда все программисты подевались?
:)
...
Рейтинг: 0 / 0
20.11.2006, 14:14
    #34140949
petsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как сделать Select
Что с моим бывшим отделом случилось?
Куда все программисты подевались?

Спасибо, Марк.
Программисты твоего отдела работают не покладая (или не прикладая) рук. Перевели же клиентские базы с семерки на восьмерку, и с Windows на AIX. Сервер отчетов тоже на AIX. Вылезла куча ошибок везде, особенно в отчетах, что работало быстро, стало медленно. Всю прошлую неделю был сумасшедший дом, сейчас немного приутихло, но все равно проблем куча. Репликацию тоже сделали наоборот, с Udbtown на 2 другие, там тоже было море проблем, но я вроде сделал, сейчас работает. Вот такие дела.
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / как сделать Select / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]