Toon posts:

[MySQL] Left join probleem

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hoi,

ik ben bezig een query te maken om enkele tabellen op een juiste manier te joinen maar kom er niet uit.
Ik heb 2 tabellen die regio informatie bevatten: regi en regi_oms. Daarnaast heb ik 2 tabellen die skiregio informatie bevatten: rgsk en rgsk_oms. Sommige regio's hebben ook skigebieden, hiervoor wordt de relatie gelegd tussen regi.regi_code en rgsk.regi_code. Nu wil ik een lijst hebben van regio's en indien de regio ook skigebieden heeft, de skigebieden. De relatie kun je best in onderstaande figuur zien.

Afbeeldingslocatie: http://users.pandora.be/cliffsmoke/qr.gif

Ik doe een inner join tussen regi en regi_oms en ook tussen rgsk en rgsk_oms. tussen deze 2 groepen doe ik een left join. Maar ik krijg steeds maar enkel de regio's te zien die ook een skigebied hebben, niet alle regio's


Afbeeldingslocatie: http://users.pandora.be/cliffsmoke/qr2.gif

weet iemand wat ik verkeerd doe?

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Al eens gekeken naar Hoe werken joins?
Ik heb niet echt de tijd om die 4-letter-code tabellen uit te gaan zitten puzzelen, maar ik zie zo al een inner-left-inner combinatie en ik zeg je nu vast dat 't daar geheid in zit ;) (En even een dikke gok: je tweede inner moet een left outer worden, maar dan heb ik echt niet verder gekeken dan mijn neus lang is... druk druk druk :P )

[ Voor 20% gewijzigd door RobIII op 26-11-2008 13:11 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Icelus
  • Registratie: Januari 2004
  • Niet online
Tweede INNER JOIN moet ook een LEFT JOIN zijn.
De ‘rgsk_omsk.lang = nl’ conditie in de WHERE filtert de rijen die géén skigebied hebben er weer uit (deze zijn NULL).

Developer Accused Of Unreadable Code Refuses To Comment


Acties:
  • 0 Henk 'm!

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 06-09 00:37

curry684

left part of the evil twins

De WHERE verneukt het, voor regio's zonder skigebieden gaat rgsk_oms.lang natuurlijk NULL zijn. Tip: verplaats de where-clauses richting de join filters.

Uh dat zeg je net dus.... bliep dan snap ik je probleem niet?

[ Voor 22% gewijzigd door curry684 op 26-11-2008 13:49 . Reden: strikethroughs omdraaien O-) ]

Professionele website nodig?


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Icelus schreef op woensdag 26 november 2008 @ 13:11:
Tweede INNER JOIN moet ook een LEFT JOIN zijn.
De ‘rgsk_omsk.lang = nl’ conditie in de WHERE filtert de rijen die géén skigebied hebben er weer uit (deze zijn NULL).
De 2e inner join veranderen door Left join doet ook niets aan het resultaat. Als ik rgsk_oms.lang = 'nl' echter verwijder, dan heb ik een goed resultaat, alleen hebben de skigebiednamen dan niet de goeie taal natuurlijk...

Acties:
  • 0 Henk 'm!

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 06-09 00:37

curry684

left part of the evil twins

Ohzo, dan mag je het doorgestreepte deel van m'n post wel nog een keer goed lezen want dat is je oplossing ;)

Professionele website nodig?


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
curry684 schreef op woensdag 26 november 2008 @ 13:48:
Ohzo, dan mag je het doorgestreepte deel van m'n post wel nog een keer goed lezen want dat is je oplossing ;)
Jazeker, ik dat ga ik doen... nu nog ff uitvissen hoe ik de where in de join krijg..
Edit: Bedankt, dit was idd de oplossing :)

[ Voor 6% gewijzigd door Verwijderd op 26-11-2008 14:01 ]

Pagina: 1