简体   繁体   中英

Oracle compare query results with multiple joins against a table

I need to compare query results against a table. I have the following query.

select
i.person_id,
a.appellant_first_name,
a.appellant_middle_name,
a.appellant_last_name,
s.*

from CWLEGAL.individuals i inner join CWLEGAL.tblappealsdatarevisionone a
on i.casenm = a.D_N_NUMBER1 and 
   i.first_name = a.appellant_first_name and 
   i.last_name = a.appellant_last_name
inner join CWLEGAL.tblappealstosupremecourt s
on a.DATABASEIDNUMBER = s.DBIDNUMBER
order by orclid21;

I need to see what orclid21's in cwlegal.tblappealstosupremecourt don't appear in the above query.

You are making the first inner join between i and a, the result of which you're joining with s. Now, if you want to see which records won't join, that's known as anti-join, and in whatever database you're querying it, it may be achieved by either selecting a null result or taking those records as a new result. Examples, with taking your query (the whole code in the question) as q, assuming you've kept all the needed keys in it: Example 1:

with your_query as q

select s.orclid21 from q
left join CWLEGAL.tblappealstosupremecourt s
  on q.DATABASEIDNUMBER = s.DBIDNUMBER
 and s.orclid21 is null 

Example 2:

with your_query as q

select s.orclid21 from q
right join CWLEGAL.tblappealstosupremecourt s
  on q.DATABASEIDNUMBER != s.DBIDNUMBER

Example 3:

with your_query as q

select s.orclid21 from CWLEGAL.tblappealstosupremecourt s
where s.DBIDNUMBER not in (select distinct q.DATABASEIDNUMBER from q) 

I was able to get this to work.

select 
i.person_id,
a.appellant_first_name,
a.appellant_middle_name,
a.appellant_last_name,
s.*
from CWLEGAL.tblappealstosupremecourt s
join CWLEGAL.tblappealsdatarevisionone a
on  a.DATABASEIDNUMBER = s.DBIDNUMBER
left outer join CWLEGAL.individuals i on
i.casenm = a.D_N_NUMBER1 and 
   i.first_name = a.appellant_first_name and 
   i.last_name = a.appellant_last_name
where person_id is null
order by orclid21

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM