SQL Запрос для извлечения данных путем объединения 4 таблиц - PullRequest
0 голосов
/ 28 февраля 2020
SELECT DISTINCT ae.c_id, 
            eng.e_id, 
            ab.b_id, 
            a.* 
FROM   account a 
   INNER JOIN acct_c_id_assoc ae 
           ON a.acct_id = ae.acct_id 
   INNER JOIN acct_e_id_assoc eng 
           ON a.acct_id = eng.acct_id 
   LEFT OUTER JOIN acct_b_id_assoc ab 
                ON a.acct_id = ab.acct_id 
WHERE  a.inactv_sts = 'N' 
   AND ae.inactv_sts = 'N' 
   AND ae.sys_id = 5 
   AND eng.e_id = '101' 
   AND a.acct_id NOT IN (SELECT acct_id 
                         FROM   acct_b_id_assoc) ORDER  BY a.create_dtm DESC 

Там 4 таблицы: идентификатор учетной записи PK,
Entitiles (E_ID_asso c) - идентификатор ac PK и FK, E_ID PK & FK,
ядер (C_ID_asso c) - идентификатор ac PK & FK, C_ID PK & FK
Преимущества (B_ID_asso c) - идентификатор действия PK & FK, B_ID PK & FK

мне нужно выбрать все учетные записи с уникальным C_ID (основной идентификатор не должен повторяться для нескольких учетных записей) с указанием c прав то есть 101 и не должен иметь B_ID (никаких преимуществ для учетной записи)

выше - это запрос, который я пробовал, но я получаю учетные записи с тем же идентификатором ядра

// a.inactv_sts = 'N' и ae.inactv_sts = 'N' и ae.sys_id = 5 эта строка означает, что учетная запись активна, связана с каким-то основным идентификатором

Может кто-нибудь помочь мне с этим

1 Ответ

0 голосов
/ 28 февраля 2020

Ключевое слово DISTINCT работает, получая различные значения по всем выбранным столбцам в вашем запросе. В вашем случае это будет отличаться для (ae.c_id, eng.e_id, ab.b_id, a. *). Не просто отдельные значения c_id. например, если то же самое c_id, но говорят, что eng.e_id отличается, это будет в выходном результате.

Для дальнейшего объяснения, скажем, в таблице указаны города с cols страной и городом

US      NewYork
US      Boston
France  Paris
Canada  Toronto
Canada  Vancouver

select distinct country from cities  -- will return US, France, Canada

select distinct country, city from cities  -- will return every row.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...