Ok een breinbrekertje (tenzij ik iets compleet over het hoofd zie)

Ik heb 2 tabellen , die zien er als volgt uit


emailadressen

 id | emailadres | cat1 | cat2 | cat3 | cat4
--------------------------------------------
  1 | [email protected]    |  1   |  1   |  0   |  1
  2 | [email protected]    |  0   |  1   |  1   |  0
  3 | [email protected]    |  1   |  0   |  1   |  1
  4 | [email protected]    |  1   |  1   |  0   |  0


categorie

 id | naam
----------------
  1 | Algemeen
  2 | Bestuur
  3 | Beheer
  4 | Overig



Wat wil ik zien?

Uit emailadressen het id, emailadres en de namen van de categorien waar een 1 instaat.

Hoe doe ik dit in SQL, ik wordt er redelijk gestoord van. :) meer dan ik al was.
Ik denk dat ik dr niet aan ontkom, ik laat nog wel ff weten wat het word
Hierbij verklaar ik mijzelf volkomen idioot! Het is van de zotte dat ik uberhaubt de tijd heb genomen om onderstaande uitermate smerige en brakke query te schrijven en te testen, maar het werkt...

SELECT
  email.email,
  CASE
    WHEN cat1 = 1 THEN (SELECT categorie FROM categorie WHERE id = 1)
    ELSE ''
  END AS cat1,
  CASE
    WHEN cat2 = 1 THEN (SELECT categorie FROM categorie WHERE id = 2)
    ELSE ''
  END AS cat2
FROM email

Je moet alleen nog even dezelfde tabel- en kolomnamen gebruiken als dat er in jouw, brakke (sorry...), database staat.

Uiteraard nog even cat3 en cat4 toevoegen, maar dan heb je ook wat. Je moet wel over MySQL 4.1 of beter beschikken, er wordt gebruik gemaakt van subqueries.

Complimenten en een bedankje lijken mij op zijn plaats...
Frank schreef op 15.09.2006 16:00
Hierbij verklaar ik mijzelf volkomen idioot! Het is van de zotte dat ik uberhaubt de tijd heb genomen om onderstaande uitermate smerige en brakke query te schrijven en te testen, maar het werkt...


LOL
Ohja, voor het geval frank reageerd, ik ga / kan / mag / moet geen aanpassingen doen op databaseniveau. Ik wil puur een query uitpoepen

@ Frank,

Je kan wel blijven zeuren over zijn brakke database, maar ik ben al meerdere keren in dit topic tegengekomen dat hij er niks aan kan doen.

En vragen om complimentjes.... pff, erg aardig dat je het voor wes maakt en hij zal het zeker waarderen....
Frank, daar zat ik ook aan te denken, maar ik wist niet dat je in CASES meteen een WHERE mocht gebruiken, daarom dacht ik dat het niet echt mogelijk/realistisch was. Maar op die manier is het nog redelijk te doen.
Maar het blijft wel jammer dat hij er niks aan kan veranderen, gelukkig toch nog een oplossing.
Ik vind het ook jammer maar ik doe daar dus niets aan zoals ik al zei en nogmaals een paar keer :)

@frank, werkt , grote jongen
wes schreef op 15.09.2006 16:22
@frank, werkt , grote jongen

En zo is iedereen weer tevreden..;)

@Wes: Ook nog even snel gefeliciteerd met het behalen van de 2000 posts. Veel succes.
Yep en bovenal dat het bijna weekend is en we allemaal in pais en vree op weg kunnen...

Reageren