[sql] join probleem

Pagina: 1
Acties:

  • LightYears
  • Registratie: September 2000
  • Laatst online: 14-03-2024

LightYears

wilt geen iPod

Topicstarter
ik heb een tabel met de volgende data:

cdid | trackid

ik wil het volgende weten:
alles in cdid 0 wat niet voorkomt op cdid > 0
gegeven:
alles in cdid > 0 staat op cdid 0.
met:
code:
1
select distinct * from cd as a left outer join cd as b on (a.trackid = b.trackid) where a.cdid = 0 and b.cdid != 0;

kan ik precies opvragen wat zowel op cdid 0 als op cdid > 0 staat.
Eigenlijk wil ik dus precies het tegenovergestelde weten van wat ik nu krijg, alleen ben ik niet zo'n sql held, iemand hier die me verder op weg kan helpen?

EAC > Ogg vorbis -q6 > Cowon S9 > Westone ES3X > Oor


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Tjah hints geven is niet echt makkelijk iig. Ik weet niet of je RDBMS subquery's ondersteunt, want dat maakt het makkelijk:
code:
1
Select * from cd as a where a.cdid = 0 AND a.cdid NOT IN ( select * from cd as b where b.cdid != 0 );

edit volgens mij kan INTERSECT ook (de doorsnede, alles wat in a zit maar niet in b)
code:
1
2
3
4
SELECT * FROM cd AS a WHERE a.cdid = 0
INTERSECT
SELECT * FROM cd AS b WHERE b.cdid != 0
;

Hmz tweede query klopt van geen kant, zie onder

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op woensdag 27 februari 2002 10:25 schreef Glimi het volgende:
[..]
edit volgens mij kan INTERSECT ook (de doorsnede, alles wat in a zit maar niet in b)
code:
1
2
3
4
SELECT * FROM cd AS a WHERE a.cdid = 0
INTERSECT
SELECT * FROM cd AS b WHERE b.cdid != 0
;
Ik zal het even wat vereenvoudigen:
code:
1
Select * from cd where 1=0

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Op woensdag 27 februari 2002 10:45 schreef dusty het volgende:

[..]

Ik zal het even wat vereenvoudigen:
code:
1
Select * from cd where 1=0
Argh! Natuurlijk! Sorry, dusty heeft helemaal gelijk.

INTERSECT geeft een doorsnede. Dit zijn dus de cdid's die op 0 staan en ook op niet 0.

De EXCEPT ipv de INTERSECT zou het wel moeten doen. Wees dan ook niet zo dom als ik om * te selecten, want dan klopt het niet, gewoon alleen op cdid selecten dus

(ff m'n eerste post editten)

  • LightYears
  • Registratie: September 2000
  • Laatst online: 14-03-2024

LightYears

wilt geen iPod

Topicstarter
Het is een Mysql database dus een sub select mag helaas niet :(

EAC > Ogg vorbis -q6 > Cowon S9 > Westone ES3X > Oor


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op woensdag 27 februari 2002 19:57 schreef LightYears het volgende:
Het is een Mysql database dus een sub select mag helaas niet :(
Ik zal je dan maar een hint geven.
code:
1
2
3
4
5
6
7
8
9
10
select 
  <iets> 
from 
  <tabel1> a, <tabel2> b 
where
  a.trackid=b.trackid
and
  a.<iets>
and
  b.<iets>

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR

Pagina: 1