Toon posts:

[SQL] Recursieve query?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb voor m'n leuke opleiding huiswerkopgaven gekregen om uit een database gegevens te halen met bepaalde queries.

Nu heb ik een tabel 'Hemelobject' met de volgende attributen:
* objectnaam
* satellietvan
* afstand
* diameter

(die laatste 2 doen er ff niet toe).
Uitleg satellietvan -> maan is een satelliet van de aarde

Nu is de vraag: Welke manen draaien om dezelfde planeet als Triton, afgezien van Triton zelf?

Hoe zou ik in een query kunnen zeggen dat ik alle objectnamen wil selecteren die dezelfde 'sattelietvan' hebben als 'triton'? (en hoe kan ik hierbij triton zelf uitzonderen?)

ik hoop dat je het begrijpt :P

  • HunterPro
  • Registratie: Juni 2001
  • Niet online
ga eens googlen op 'subqueries'. Onder andere PostgreSQL ondersteunt deze, evenals MSSQL.

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

echte recursive closure queries worden voor zover ik weet (nog) door geen een relationeel dbms ondersteund. Maar als je weet dat je bv maximaal 2 niveaus diep kan, moet je idd is naar subqueries kijken.

  • HunterPro
  • Registratie: Juni 2001
  • Niet online
Zoijar schreef op 08 oktober 2002 @ 18:42:
echte recursive closure queries worden voor zover ik weet (nog) door geen een relationeel dbms ondersteund. Maar als je weet dat je bv maximaal 2 niveaus diep kan, moet je idd is naar subqueries kijken.
een volledig recursieve query kan zonder limiet in geen enkel computersysteem ;)

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Waarom zou dat niet kunnen? Compilers bv zitten vol met die dingen

edit:
Ok ik dacht dat je een expliciete limiet bedoelde. Kan idd geen oneindige datasets maken natuurlijk nee, zoals bv alle priemgetallen recursief genereren :) flauw hehe

Verwijderd

Topicstarter
zit even te zoeken op google maar van de stukjes die ik tegenkom word ik helemaal gek... Ik weet iig nu dat het met subqueries kan, nu nog de vraag hoe :7

  • gjkamstra
  • Registratie: September 2000
  • Laatst online: 31-08 20:53
code:
1
select * from bla b where  b.circling in (select c.circling from bla c where naam= "triton") and b.naam != triton

of zoiets , ben niet helemaal zeker van in

Hier had een grappige signature moeten staan, maar helaas: geen inspiratie


  • robjanssen
  • Registratie: September 2001
  • Laatst online: 02-08 16:10

robjanssen

Software Developer

code:
1
2
3
4
SELECT objectnaam
FROM Hemelobject
WHERE satelietvan = (SELECT satelietvan FROM Hemelobject WHERE objectnaam = 'Triton')
AND objectnaam <> 'Triton'

  • Sjaaky
  • Registratie: Oktober 2000
  • Laatst online: 22-08 16:45
Misschien is dit iets http://www.webgoeroe.net/item/277.
Ik gebruik het iig regelmatig om boomstructuren in een database op te slaan.

Verwijderd

Topicstarter
robjanssen schreef op 08 oktober 2002 @ 19:17:
code:
1
2
3
4
SELECT objectnaam
FROM Hemelobject
WHERE satelietvan = (SELECT satelietvan FROM Hemelobject WHERE objectnaam = 'Triton')
AND objectnaam <> 'Triton'
Bedankt! dit werkt :) ik had de moed al bijna opgegeven! 8)7

  • FastWallie
  • Registratie: September 2001
  • Laatst online: 25-11-2024
start with childid=[nummer]
connect by prior
childid=parentid

statement van oracle is hier erg handig. Die gaat wel recursief door alle niveua's

http://www.jawal.nl

Pagina: 1