pNbr primary key
firstname varchar
lastname varchar
pnbr firstname lastname
850718-1234 Anna Book
830311-4443 Evert Andersson
....ca 100 personer
Hur ska man skriva sql frågan för att få fram studenter med samma namn
(förnamn,efternamn) men med olika pnbr.Använder mysql 5.1.Vet så mycket som att man ska använda subfråga.
select t.pnbr
, t.firstname
, t.lastname
from tbl t
where exists
( select 1
from tbl
where pnbr <> t.pnbr
and firstname = t.firstname
and lastname = t.lastname )
order
by t.lastname
, t.firstname
, t.pnbr
Tackar även för snabbt svar.Men har lite funderingar.Där du skrev select 1 ,skrev du fel där? Jag har testat din kod och får noll som svar vilket inte är rätt :( (svaret ska bli 7 pers) Man behöver inte kopiera tebellen va? Anledning är detta pnbr <> t.pnbr det ser ut som du vill gemföra med en kopia av tabellen.Så kan du ta med allt som måste skrivas in om det nu inte var det du gjorde sist.
select t.pnbr
, t.firstname
, t.lastname
from tbl t
where exists
( select 1
from tbl
where pnbr <> t.pnbr
and firstname = t.firstname
and lastname = t.lastname )
order
by t.lastname
, t.firstname
, t.pnbr
Får inte det svar jag vill ha tyvär.Tabellen heter Students.Om jag förståt dig rätt ska jag skriva exakt så här:
select Students.pnbr
, Students.firstname
, Students.lastname
from Students
where exists
( select 1
from Students
where pnbr <> Students.pnbr
and firstname = Students.firstname
and lastname = Students.lastname )
order
by Students.lastname
, Students.firstname
, Students.pnbr
select Students.pnbr
, Students.firstname
, Students.lastname
from Students [b]S[/b]
where exists
(select 1
from Students
where [b]s.[/b]pnbr <> Students.pnbr
and [b]s.[/b]firstname = Students.firstname
and [b]s.[/b]lastname = Students.lastname)
order by Students.lastname
, Students.firstname
, Students.pnbr