Ho due tabelle come il seguente:limite, la scelta UNIONE duplicare il controllo colonne
parameters1
+------+-----+
| cod | des |
+------+-----+
| 1 | aaa |
| 2 | bbb |
| 3 | ccc |
parameters2
+------+-----+
| cod | des |
+------+-----+
| 1 | mmm |
solito aderire al set di risultati di questo due tabelle con UNION in questo modo:
SELECT cod, des
FROM parameters1
UNION
SELECT cod, des
FROM parameters2
e ottengo questo risultato insieme:
+------+-----+
| cod | des |
+------+-----+
| 1 | aaa |
| 2 | bbb |
| 3 | ccc |
| 1 | mmm |
voglio limitare il duplicato UNION verifica solo alla colonna cod
, quindi voglio evitare che il 1 cod ottenere duplicato nel set di risultati (quando v'è un record con nome diverso e lo stesso merluzzo), voglio ottenere il nome dalla prima tabella (parameters1):
+------+-----+
| cod | des |
+------+-----+
| 1 | aaa |
| 2 | bbb |
| 3 | ccc |
AGGIORNAMENTO Se rimuovo il record 1
dal parameters1 tavolo (DELETE FROM parameters1 WHERE cod = 1
) dovrei ottenere questo risultato insieme:
+------+-----+
| cod | des |
+------+-----+
| 1 | mmm | ---> FROM parameters2
| 2 | bbb |
| 3 | ccc |
E 'possibile limitare il controllo duplicato di un'Unione a un solo campo o alcuni campi? Come ?
La soluzione dovrebbe funzionare su un ambiente multidatabase (MSSQL, PostgreSQL, MySQL).
possibile duplicato del [dell'Unione distinta di SQL Server per una colonna] (http://stackoverflow.com/questions/7338884/sql-server-distinct-union-for-one-column) – ruakh
Si prega di spiegare la logica del perché la riga '(1, 'aaa')' viene scelta sopra la riga '(1, 'mmm')' eg perché ''aaa' <'mmm'', forse? La risposta accettata sembra scegliere una riga arbitraria. – onedaywhen
È una logica che ho definito perché una tabella ha la precedenza ... – aleroot