RazofishMedlem sedan sep. 2000780 inlägg Följande kod skriver ut tidningar som innnehåller artiklar med nyckelordet databaser. Hur gör jag för att den ska plocka bort de som även innehåller nyckelorder SQL.
select tnamn,argang,nummer,sida
from tidskrifter,finns_i,nyckelord
where nyckelord.keyword='databaser'
and nyckelord.anr=finns_i.anr
and finns_i.tnr=tidskrifter.tnr;
LarsGMedlem sedan dec. 200012 464 inlägg select tnamn,argang,nummer,sida
from tidskrifter,finns_i,nyckelord
where nyckelord.keyword='databaser'
and nyckelord.anr=finns_i.anr
and finns_i.tnr=tidskrifter.tnr
and not exists (select * from nyckelord
where anr = finns_i.anr
and nyckelord.keyword='SQL')
RazofishMedlem sedan sep. 2000780 inlägg Den koden ger inga rader...
LarsGMedlem sedan dec. 200012 464 inlägg Fungerar bra för mig
SQL>create table nyckelord(anr int,keyword char(10));
SQL>create table tidskrifter(tnr int, name char(10));
SQL>create table finns_i(anr int,tnr int);
SQL>
SQL>insert into nyckelord values(1,'Databaser');
SQL>insert into nyckelord values(1,'SQL');
SQL>insert into nyckelord values(2,'Databaser');
SQL>insert into nyckelord values(3,'SQL');
SQL>
SQL>insert into tidskrifter values(1,'Lektyr');
SQL>insert into tidskrifter values(2,'Cocktail');
SQL>
SQL>insert into finns_i values(1,1);
SQL>insert into finns_i values(2,2);
SQL>insert into finns_i values(3,1);
SQL>
SQL>select name
SQL&from tidskrifter,
SQL& finns_i,
SQL& nyckelord
SQL&where nyckelord.keyword = 'Databaser'
SQL& and nyckelord.anr = finns_i.anr
SQL& and finns_i.tnr = tidskrifter.tnr
SQL& and not exists (select *
SQL& from nyckelord
SQL& where anr = finns_i.anr
SQL& and nyckelord.keyword='SQL');
NAME
==========
Cocktail
1 row found
(Ej testat i Oracle)
RazofishMedlem sedan sep. 2000780 inlägg Fel av mig där, nyckelord var versaler och i koden använde jag gemener :r