Toon posts:

Mysql 3.nogwat outer join

Pagina: 1
Acties:

Verwijderd

Topicstarter
Kan dit in Mysql 3? Zoja en hoe?

Ik heb een tabel met als primary key id_object. Deze heeft een 1-n relatie met een andere tabel. Nu wil ik alle id_object ophalen die alleen in die eerste tabel voorkomen. Hij mag dus nog niet gekoppeld zijn met die andere tabel.

Tabel 1:
id_object

Tabel 2:
id
id_object
id_auto

Ik wil het ook in 1 query doen. Kan dit? Zou toch moeten werken lijkt me. Ik had al iets van:

SELECT id_object FROM tabel1, tabel2 WHERE tabel1.id_object!=tabel2.id_object

Bedankt voor elke tip.

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
SELECT object_ID
FROM tabel1 a
LEFT OUTER JOIN tabel2 b on a.object_id = b.object_id
WHERE b.id_object IS NULL

Oops! Google Chrome could not find www.rijks%20museum.nl


Verwijderd

Topicstarter
En dat werkt in Mysql 3?

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Misschien even proberen?

Oops! Google Chrome could not find www.rijks%20museum.nl


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Waarom niet? :?

[ Voor 3% gewijzigd door NMe op 14-02-2005 14:42 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
Tja weet ik ook niet..stond me iets van bij. Ik zal wel in de war zijn met sub queries. Het is me inmiddels met een LEFT JOIN gelukt.

Verwijderd

Topicstarter
Gaat toch nog niet helemaal goed. Ik heb nu het volgende.

Databasestructuur:
tabel: vragen
- id_vraag
- naam
- nummer

tabel: koppeltabel
- id_koppeling
- id_vraag
- id_vragenset

tabel: vragenset
- id_vragenset
- naam

Wat ik dus wil is alle vragen ophalen die nog niet aan een bepaalde vragenset zijn gekoppeld.
Dus doe ik het volgende:

code:
1
2
3
4
SELECT vragen.id_vraag, vraag, nummer
FROM vragen 
LEFT JOIN koppeltabel ON ( vragen.id_vraag = koppeltabel.id_vraag ) 
WHERE koppeltabel.id_vragenset IS NULL


Nu krijg ik dus alleen de records van vragen terug als id_vragenset nog helemaal niet in de koppeltabel zit. Dit moet niet. Hij kan namelijk al wel voor andere vragensets erin zitten.

Dus doe ik zoiets:
code:
1
2
3
4
5
SELECT vragen.id_vraag, vraag, nummer
FROM vragen 
LEFT JOIN koppeltabel ON ( vragen.id_vraag = koppeltabel.id_vraag ) 
WHERE koppeltabel.id_vragenset IS NULL
AND koppeltabel.id_vragenset='2'


En dan krijg ik helemaal niks terug. Terwijl er wel een vraag is waar deze vragenset nog niet aan gekoppeld is. Ik hoop dat ik het een beetje goed uitleg en dat het te snappen is. Anders hoor ik het wel. Bedankt voor elke tip iig.

Verwijderd

Topicstarter
Laat maar, ik zat te sloapen AND moest OR zijn

code:
1
2
3
4
5
SELECT vragen.id_vraag, vraag, nummer
FROM vragen 
LEFT JOIN koppeltabel ON ( vragen.id_vraag = koppeltabel.id_vraag ) 
WHERE koppeltabel.id_vragenset IS NULL
OR koppeltabel.id_vragenset!='2'
Pagina: 1