Tengo la tabla CSBaumkontakt y aquí hay una consulta de ejemplo:

select rootpubindex
from csbaumkontakt
where dadpubindex = '2143640C-3ABF-440C-B094-2128F4495874'

Con los resultados rootpubindex = F7BC36A0-AD4F-49D5-B4FC-AD529C7EA738

select rootpubindex, dadpubindex
from csbaumkontakt
where relpubindex = '2143640C-3ABF-440C-B094-2128F4495874'

Con el resultado rootpubindex = D66035CB-B7AD-4D54-9FC7-AE6E7F32662D y dadpubindex = D66035CB-B7AD-4D54-9FC7-AE6E7F32662D

Dadpubindex de la primera consulta es relpubindex de la segunda consulta.

Ahora quiero saber si rootpubindex = D66035CB-B7AD-4D54-9FC7-AE6E7F32662D y dadpubindex = D66035CB-B7AD-4D54-9FC7-AE6E7F32662D de la segunda consulta son los mismos que rootpubindex = F7BC36A0-AD4F-49D5-B4FC-AD529C7EA738 de la primera consulta. Por lo tanto, en este ejemplo no. ¿Puedo ver esto si es el mismo o no para todas las filas de la tabla con una consulta?

0
user1673665 19 feb. 2018 a las 17:58

2 respuestas

La mejor respuesta

Desea saber si existe un registro relacionado (rel.relpubindex = main.dadpubindex) con los registros relacionados rootpubindex y dadpubindex que coinciden con el registro principal rootpubindex. Utilice EXISTS para esto:

select
  dadpubindex,
  rootpubindex,
  case when exists 
  (
    select * 
    from csbaumkontakt rel 
    where rel.relpubindex  = main.dadpubindex
      and rel.rootpubindex = main.rootpubindex
      and rel.dadpubindex  = main.rootpubindex
  ) then 'yes' else 'no' end as match_exists
from csbaumkontakt main;
1
Thorsten Kettner 19 feb. 2018 a las 15:25

Parece que está buscando las filas con los mismos valores en dos columnas

select rootpubindex 
     , dadpubindex 
from csbaumkontakt 
where dadpubindex = relpubindex

De para ver el resultado del partido

select rootpubindex 
     , dadpubindex 
     , adpubindex = relpubindex  /* 0 = not equal, 1 = equal */
from csbaumkontakt 
1
scaisEdge 19 feb. 2018 a las 15:06