2017-04-14 2 views
-3

ich ausführen müssen einen Join wo:SQL Join-Abfrage -

  1. ich nur in ziehen alle Person interessiert bin IDs, wo eine der IDs enthält den Wert ‚N‘
  2. Dann muss ich führen eine Join das wird den Namen der IDs

enter image description here

+1

Also, was haben Sie versucht (falls vorhanden)? –

+0

Was hast du bis jetzt probiert? – nabuchodonossor

+0

@AndyKorneyev: Ein Gedanke – nabuchodonossor

Antwort

1

Hoffe, es wird

hilft
Select per.personId,per.name ,idn.identifier from 
person per inner join idetifier idn on (idn.personId = per.personId and 
idn.identifier like '%N%') 
+0

Dies gibt nur die Zeilen mit dem N-Identifier zurück. Das ist nicht was die Frage spezifiziert. –

0

A join bringt in den Personennamen zurück. Das ist trivial. Sie können exists verwenden, um die Menschen Kennung zu erhalten, die beginnt mit einer N.

select i.*, pn.name 
from identifier i join 
    personname pn 
    on i.personid = pn.personid 
where exists (select 1 
       from identifier i2 
       where i2.personid = i.personid and 
        i2.identifier like 'N%' 
      ); 
+0

nicht am Ende mit dieser, aber scheint wie es würde funktioniert - danke – Sully007

0

wählen Identifier *, Person.PersonId, Person.Name von Identifier innerer Verknüpfung auf Identifier.PersonId = Person.PersonId;