Ciao ho un problema con una query
praticamente vorrei estrarre un elemento per ciascuna key che ho nel db
Praticamente per ogni key ci sono 10 righe

Con questa query:

SELECT `ido` , `key` , `titolo`
FROM `oggetti`
WHERE `key` =1899
LIMIT 1
UNION
SELECT `ido` , `key` , `titolo`
FROM `oggetti`
WHERE `key` =16229
LIMIT 1
UNION
SELECT `ido` , `key` , `titolo`
FROM `oggetti`
WHERE `key` =16230
LIMIT 1

Mi da solo un elemento

Mentre se uso questa query:
SELECT `ido` , `key` , `titolo`
FROM `oggetti`
WHERE `key` =1899
UNION
SELECT `ido` , `key` , `titolo`
FROM `oggetti`
WHERE `key` =16229
UNION
SELECT `ido` , `key` , `titolo`
FROM `oggetti`
WHERE `key` =16230
LIMIT 3

Mi da si 3 risultati come richiesto ma tutti della prima key (1899)

Mentre se uso questa:

SELECT `ido` , `key` , `titolo`
FROM `oggetti`
WHERE `key` =1899
LIMIT 1
UNION
SELECT `ido` , `key` , `titolo`
FROM `oggetti`
WHERE `key` =16229
LIMIT 1
UNION
SELECT `ido` , `key` , `titolo`
FROM `oggetti`
WHERE `key` =16230
LIMIT 3

ottengo 3 risultati distinti ma non mi piace tanto come è scritta

Ho altre possibilità ?