Men icke. Så några förslag, eller andra angreppssätt? Det går ju att göra omständiga workarounds på andra håll, men det vore skönt om någon hade en enkel sql sats istället. Satser efter varandra går också bort (ex. select into och sedan söka där)
$ @sql_test
$ sql$
--
-- Skapa en databas...
--
create database filename test1;
--
-- skapa en tabell...
--
create table klader
(namn char(5),
plagg char(5));
--
-- Lägg in lite testdata...
--
insert into klader values ('Kalle','Skor');
1 row inserted
insert into klader values ('Kalle','Byxor');
1 row inserted
insert into klader values ('Johan','Skor');
1 row inserted
insert into klader values ('Kalle','Jacka');
1 row inserted
insert into klader values ('Johan','Jacka');
1 row inserted
insert into klader values ('Erik','Skor');
1 row inserted
commit;
--
-- Först en enkel select...
--
select * from klader;
NAMN PLAGG
Kalle Skor
Kalle Byxor
Johan Skor
Kalle Jacka
Johan Jacka
Erik Skor
6 rows selected
commit;
--
-- Sedan nole's select...
--
SELECT * from klader
where namn = ANY(SELECT namn from klader where plagg = 'Skor')
and plagg = 'Jacka';
NAMN PLAGG
Kalle Jacka
Johan Jacka
2 rows selected
commit;
--
-- Sedan är modifierad varient som visar alla plagg...
--
select * from
(select namn as t1_namn, plagg as t1_plagg
from klader where plagg = 'Skor') as t1
natural join
(Select namn as t2_namn,plagg as t2_plagg
from klader where plagg = 'Jacka') as t2
where t1_namn = t2_namn;
T1.T1_NAMN T1.T1_PLAGG T2.T2_NAMN T2.T2_PLAGG
Kalle Skor Kalle Jacka
Johan Skor Johan Jacka
2 rows selected
commit;
--
-- Kasta databasen...
--
drop database filename test1;
--
-- Klart !
--
exit
$ set nover
$