[mySQL] Gebruik van een IF-statement in query

Pagina: 1
Acties:

  • wustenveld
  • Registratie: Februari 2002
  • Laatst online: 08-08 17:31
Ik heb een vraag. Ik ben een query aan het bouwen die 7 tabellen bij elkaar moet brengen en 1 record als resultaat geeft. Dat is nog niet zo moeilijk maar nu zit ik dus met het volgende. Er worden twee tabellen samengevoegd maar dat is helemaal afhankelijk van 1 waarde (is meestal maar goed, even m'n verhaal vertellen). Het kan zijn dat de query ontdekt dat die waarde niet is ingevuld, en dan moet de tabel niet gekoppeld worden.

Nu zat ik al te denke aan het join maar dat gaat ook niet werken, ik doe dan:

LEFT JOIN tabel1 ON (tabel1.veld1 = tabel2.id)

Ik dacht dat dit zou betekenen dat ie dan alle waarden uit tabel1 ophaalt en alleen de waarden uit tabel2 waarvoor de gegeven over een komen, maar dat doet ie niet. Andersom heeft geen zin want dan legt ie relaties die er niet zijn.

Dus toen ging ik nadenken over een if-statement:
if (tabel1.useveld1=1,LEFT JOIN tabel1 ON (tabel1.veld1 = tabel2.id,''))

Dus als hij veld1 kan gebruiken dan moet ie een join doen, in m'n from statement heb ik dan staan:
if (tabel1.useveld1=0,tabel1,'')

Maar ook dit werkt niet, heeft er misschien iemand anders een oplossing voor dit probleem? Alvast bedankt voor de hulp

  • T-h-i-j-s
  • Registratie: April 2000
  • Laatst online: 21-04 13:18

T-h-i-j-s

koffie? ja lekker :)

code:
1
table1 LEFT JOIN table2 ON table1.val1 = table2.val1 AND table2.val2 NOT NULL


oid

  • jwpmzijl
  • Registratie: December 2002
  • Laatst online: 21-06 09:07
Dit roept om en UNION statement!. Union voegt de resultaten van 2 aparte queries samen. Daarbij moeten beide queries hetzelfde aantal velden als resultaat geven en dient het veldtype gelijk te zijnexact

code:
1
2
3
4
5
6
7
8
9
10
 SELECT [veld1], [veld2] 
   FROM (gelinkte tabellen voor voorwaarde1) 
   WHERE (voorwaarde1)

UNION ALL

  SELECT [veld1], [veld2]  
    FROM (gelinkte tabellen voor voorwaarde2) 
    WHERE (voorwaarde2)
;

[ Voor 1% gewijzigd door jwpmzijl op 03-09-2003 11:46 . Reden: typo ]

Hans van Zijl


  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025

djc

Volgens mij werkt UNION wel pas in MySQL 4.

Rustacean


  • wustenveld
  • Registratie: Februari 2002
  • Laatst online: 08-08 17:31
Klopt, union werkt nog niet :( Is wel een gave statement

De opmerking van thijs zette me weer terug op het goede spoor en nu werkt het perfect, bedankt !