SQL UNION

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • verhoef1
  • Registratie: Mei 2015
  • Laatst online: 18-04-2021
Beste tweakers,

In een PHP script probeer ik het volgende te bereiken. Ik wil graag de informatie uit 2 tabellen (identiek aan structuur, maar met verschillende kolomnamen) gesorteerd weergeven op datum. Dit lukt met UNION. Echter wil ik de informatie die ik uit tabel1 krijg verder aanvullen met een ID die ik uit tabel1 krijg. En de informatie uit tabel2 met een ID uit tabel2. Het lukt mij helaas niet om te differentieren welk ID ik heb, aangezien UNION enkel de kolomnamen van de eerste tabel hanteert. Hoe is dit verschil te maken?

Hieronder de code ter verduidelijking:
PHP:
1
query   = "SELECT datum, middel_id  FROM tabel1 UNION ALL SELECT datum, stof_id FROM tabel2 ORDER BY datum";


Hoop dat iemand mij hierbij kan helpen. Alvast bedankt!

Acties:
  • 0 Henk 'm!

  • nescafe
  • Registratie: Januari 2001
  • Laatst online: 20:31
Methode 1:
Geef in een derde kolom weer uit welke bron je data afkomstig is.

SQL:
1
2
3
4
SELECT datum, middel_id, 'tabel1' AS source FROM tabel1
UNION ALL
SELECT datum, stof_id, 'tabel2' AS source FROM tabel2
ORDER BY datum


Methode 2:
De ID's spreiden over verschillende kolommen:
SQL:
1
2
3
4
SELECT datum, middel_id, NULL AS stof_id FROM tabel1
UNION ALL
SELECT datum, NULL AS middel_id, stof_id FROM tabel2
ORDER BY datum

* Barca zweert ook bij fixedsys... althans bij mIRC de rest is comic sans


Acties:
  • 0 Henk 'm!

  • RobertMe
  • Registratie: Maart 2009
  • Laatst online: 23:00
Je kunt een extra kolom toevoegen die aangeeft of het tabel 1 of tabel 2 is
SQL:
1
SELECT 'tabel1' AS type UNION SELECT 'tabel2'

Op basis van de type kolom weet je dan uit welke tabel de data komt.

Acties:
  • 0 Henk 'm!

  • verhoef1
  • Registratie: Mei 2015
  • Laatst online: 18-04-2021
Dank voor de snelle reacties. Het werkt. Erg fijn