Мне нужно импортировать данные из базы данных.Контакты связаны с компаниями двумя способами: через контактную информацию или через через "активность".Мне нужно получить несколько списков.
Список контактов без компаний достаточно прост:
where idcontact not in (select idcontact from tb_contact_soc where idcontact is not null)
and idcontact not in (select idcontact from tb_activite_soc_contact where idcontact is not null)
Список контактов с несколькими компаниями более сложный.
idcontact - это идентификаторконтакта;id - это идентификатор компании.
Tb_contact_soc - это таблица, которая связывается через контактную информацию [idcontact, идент, телефон, факс];tb_activite_soc_contact - это таблица, которая связывает через действия [idcontact, идент, activityCode].
where
(
-- contacts linked via their contact informations
idcontact in (
select idcontact
from tb_contact_soc
where idcontact is not null and ident is not null
group by idcontact
having count(*) > 1
)
-- contacts linked via an activity
or idcontact in (
select idcontact
from tb_activite_soc_contact
where idcontact is not null and ident is not null
group by idcontact
having count(*) > 1
)
) and (
-- here goes the snipplet I can't figure out
)
В последнем «и» мне нужно сказать что-то вроде «где для этого контакта, по крайней мере, один изкомпании из таблицы tb_contact_soc не найдены в компаниях из таблицы tb_activite_soc_contact ".Но я не могу понять это.
Мне нужно получить его только один раз, чтобы наш клиент мог проверить данные, прежде чем мы начнем импорт, так что это может быть немного затруднительно (не слишком, спасибо;))