Toon posts:

[MYSQL] Query (left join .... ?)

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil een select doen waarbij ik alle produkten uit de produkten tabel terug krijg die niet in de bod tabel voorkomen.

Ik heb tot nu toe dit gebouwd, maar het werkt niet :(
code:
1
select produkten.* from produkten left join bod on produkten.produkt_id = bod.produkt_id

wat doe ik verkeerd? Mijn bieb-boek sql in 24 uur is ook niet erg duidelijk :(

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

drm

f0pc0dert

Wat krijg je wel terug? Een error? Of een set die je niet wilde hebben?

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


Verwijderd

Topicstarter
een set die ik niet wil hebben, hij geeft ook records terug die wel voorkomen in de bod tabel en hij geeft de produkten meerdere malen?

echt heel vaag (voor mij dan ;))

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12-09 21:31

Janoz

Moderator Devschuur®

!litemod

Voeg eens een "where bot.id = null" oid toe?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Volgens mij krijg je nu juist de records terug die WEL in beide tabellen voorkomen.

In Oracle zou ik het zo doen:
SELECT * FROM PRODUKTEN WHERE PRODUCT_ID NOT IN (SELECT PRODUCT_ID FROM BOD)

Verwijderd

Topicstarter
select produkten.* from produkten left join bod on produkten.produkt_id = bod.produkt_id where bod.produkt_id = null

als ik deze query uitvoer krijg ik geen records terug?

Verwijderd

Topicstarter
Mysql ondersteunt geen sub-selects, echt super super kut :r

  • Tirillo
  • Registratie: Januari 2002
  • Niet online

Tirillo

Joker of Unauwen

This dat ik geen verstand van MySql heb.. maar kun je daarin zoiets als:

(select produkten.*
from produkten)
except
(select produkten.*
from bod)

...


Verwijderd

Probeer deze eens:

select produkten.* from produkten left join bod on produkten.produkt_id = bod.produkt_id
WHERE (((bod.produkt_id) Is Null))

Verwijderd

Topicstarter
De Werker hij werkt!! super!! :)

maar nu mag je me wel uitleggen wat al die haken in de where clause inhouden?

echt 1000x dank!!

Verwijderd

De haken weet ik ook niet precies (ik heb hem in Access laten genereren, ik ken MySQL niet zo goed). Het grote verschil met de vorige NULL is dat je altijd IS NULL moet doen, geen '= null'

Verwijderd

Topicstarter
hoe heb je hem in access gemaakt?
ik ben helaas niet zo bedreven met access maar volgens mij kan je er wel een hoop mee?

Verwijderd

Gewoon in elkaar klikken en dan SQL bekijken (view->SQL). Kind kan de was doen.

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Oplossing:
code:
1
2
3
4
select produkten.*
from   produkten 
     left outerjoin bod on produkten.produkt_id = bod.produkt_id
where  bod.produkt_id IS NULL

edit:
sorry had de oplossing hierboven over het hoofd gezien, waarom maken de mensen hier zo weinig gebruik van [code ] [/code ]

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Op maandag 25 februari 2002 13:18 schreef IceFlame het volgende:
De Werker hij werkt!! super!! :)

maar nu mag je me wel uitleggen wat al die haken in de where clause inhouden?

echt 1000x dank!!
Die haken kunnen allemaal weg
Pagina: 1