webForumDet fria alternativet

WHERE-sats

4 svar · 262 visningar · startad av Razofish

RazofishMedlem sedan sep. 2000780 inlägg
#1

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
#2
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
#3

Den koden ger inga rader...

LarsGMedlem sedan dec. 200012 464 inlägg
#4

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
#5

Fel av mig där, nyckelord var versaler och i koden använde jag gemener :r

137 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)