[mysql] lastige query...

Pagina: 1
Acties:

  • TangLeFuzZ
  • Registratie: Juni 2001
  • Laatst online: 23-08 15:45
Hey,

ik zit met een erg lastige query, krijg het maar niet voor elkaar.

Ik heb 3 tabellen, een tabel boeken(id,naam), een tabel users(id,naam) en een tabel koppeling (userid,boekid).

Op de site is een lijst met boeken te zien, als een user een boek bekijkt, wordt er in de koppeling tabel een row opgeslagen met userid en boekid.

Nu moet ik er voor zorgen dat hij bij het overzicht alleen de boeken weergeeft die een user nog niet heeft gezien (mogen dus niet in die koppeling tabel staan).

Ik heb al heel wat met joins zitten kloten, maar krijg het maar niet voor elkaar....kan iemand me er mee helpen?

  • whoami
  • Registratie: December 2000
  • Laatst online: 06:24
Je zult het met een subquery moeten doen.
code:
1
2
3
4
5
SELECT boek.naam
FROM boek
WHERE boek.id NOT IN (SELECT koppeling.boek_id 
                FROM koppeling
                 WHERE koppeling.userid = :userid)

https://fgheysels.github.io/


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

  • [sub]quote:[/sub] [sup]________________________________________[/sup] [b]Tangletje[/b] Ik heb al heel wat met joins zitten kloten, maar krijg het maar niet voor elkaar....kan iemand me er mee helpen? [sup]________________________________________[/sup]
ben ook bang dat je dit niet voor elkaar krijgt met joins...
In MySQL zit er (dan) dus niets anders op dan 2 queries ipv 1...

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • stfn345
  • Registratie: Januari 2000
  • Laatst online: 15-09 16:39
Waarom zou dat niet gaan met een join ?

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

RaZoRhEaD: Waarom zou dat niet gaan met een join ?
Omdat jij ons gaat vertellen dat het wel kan en meteen een voorbeeldje geeft? >:) ;)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Ik spreek zelf geen mysql, maar meestal kun je een 'not exists' constructie omzetten naar een 'outer join' met een 'where koppelingskolom is null' voor hetzelfde resultaat.

Who is John Galt?


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

justmental:
meestal kun je een 'not exists' constructie omzetten naar een 'outer join' met een 'where koppelingskolom is null' voor hetzelfde resultaat.
hmm zit wat in ...

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • TangLeFuzZ
  • Registratie: Juni 2001
  • Laatst online: 23-08 15:45
whoami, bedankt..
Heb het nu op kunnen lossen met een NOT IN (hier m'n id's onderscheiden van komma's).

  • whoami
  • Registratie: December 2000
  • Laatst online: 06:24
Op vrijdag 11 januari 2002 18:23 schreef Tangletje het volgende:
whoami, bedankt..
Heb het nu op kunnen lossen met een NOT IN (hier m'n id's onderscheiden van komma's).
Is graag gedaan. :)

https://fgheysels.github.io/


Verwijderd

heb ik wat gemist of is het niet eens mogelijk in MySQL om subqueries te gebruiken?

  • whoami
  • Registratie: December 2000
  • Laatst online: 06:24
Op zaterdag 12 januari 2002 16:05 schreef TheIceCoMan het volgende:
heb ik wat gemist of is het niet eens mogelijk in MySQL om subqueries te gebruiken?
't schijnt dat dat inderdaad [nog?] niet mogelijk is in MySQL. Tenzij dat in de nieuwste versie opgelost is natuurlijk.

https://fgheysels.github.io/


  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

Op zaterdag 12 januari 2002 16:22 schreef whoami het volgende:

[..]

't schijnt dat dat inderdaad [nog?] niet mogelijk is in MySQL. Tenzij dat in de nieuwste versie opgelost is natuurlijk.
In versie 3.x nog niet mogelijk, in versie 4.x wel :)

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op zaterdag 12 januari 2002 17:00 schreef TheRookie het volgende:
In versie 3.x nog niet mogelijk, in versie 4.x wel :)
In versie 4.1.x geloof ik zelfs.

Maar ik verwacht er nog niet al te veel van eerlijk gezegd.

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

code:
1
2
3
4
SELECT boek.naam
FROM boek
LEFT JOIN koppeling ON koppeling.userid = 1 AND koppeling.boekid = boek.boekid
WHERE koppeling.boekid = NULL

of zoiets...

Klaar voor een nieuwe uitdaging.

Pagina: 1