Ik heb deze query....


SELECT abbreviation, description
			FROM afkortingen
		WHERE abbreviation LIKE 'm%'
			UNION (
				SELECT afkorting human_abbreviation, naam description
				FROM materieel
				WHERE human_abbreviation LIKE 'm%'
			)
		ORDER BY abbreviation ASC

Echter deze lijkt niet het juiste veld van 'human_abbreviation' op te halen?

Ik heb dus deze tables:
afkortingen
met abbreviation en description

en
materieel
met o.a abbreviation en human_abbreviation

Nu koppelt hij blijkbaar steeds abbreviation in de UNION in plaats van human_abbreviation. Hoe komt dat? Of zie ik iets over het hoofd? Sta me al een kwartier op de query te staren, maar ik kom er niet uit.
Als het is wat ik denk dan is er niets mis, maar verwacht je het verkeerde. Bij een union worden altijd de kolomnamen van de eerste query gebruikt voor de hele resultset. Dat je in de tweede query dus een alias gebruikt wordt simpelweg genegeerd. Alle records, in je hele resultset zullen twee velden hebben 'abbreviation' en 'description'. Dat is hoe je ze in de eerste query hebt genoemd.
ik ga eens even kijken straks... thnx..
Je kan eens testen door wat tekst op te nemen, bijvoorbeeld de tabelnamen.

SELECT 'tabel afkortingen',abbreviation, description
  FROM afkortingen
 WHERE abbreviation LIKE 'm%'
 UNION
SELECT 'tabel materieel', afkorting human_abbreviation, naam description
  FROM materieel
 WHERE human_abbreviation LIKE 'm%'

Reageren