ограничение, выбор столбцов для проверки дубликатов UNION

У меня есть две таблицы следующего вида :

параметры1

+------+-----+
| cod  | des |
+------+-----+
|  1   | aaa |
|  2   | bbb |
|  3   | ccc |

параметры2

+------+-----+
| cod  | des |
+------+-----+
|  1   | mmm |

Обычно я соединяю набор результатов этих двух таблиц с помощью UNION таким образом:

SELECT  cod,  des 
FROM parameters1
UNION 
SELECT  cod,  des 
FROM parameters2

и получаю такой набор результатов:

+------+-----+
| cod  | des |
+------+-----+
|  1   | aaa |
|  2   | bbb |
|  3   | ccc |
|  1   | mmm |

Я хочу ограничить проверку дубликатов UNION только столбцом cod, поэтому я хочу избежать дублирования 1 кода в наборе результатов (когда есть запись с другим именем и тем же кодом), я хочу получить имя из первой таблицы (parameters1) :

+------+-----+
| cod  | des |
+------+-----+
|  1   | aaa |
|  2   | bbb |
|  3   | ccc |

UPDATE. Если я удалю запись 1 из таблицы parameters1(DELETE FROM parameters1 WHERE cod = 1), я должен получить такой набор результатов:

+------+-----+
| cod  | des |
+------+-----+
|  1   | mmm |   ---> FROM parameters2
|  2   | bbb |
|  3   | ccc |

Можно ли ограничить проверку дубликатов в UNION только одним полем или некоторыми полями? Как?

Решение должно работать в среде с несколькими базами данных (MSSQL, PostgreSQL, MySQL).

6
задан aleroot 24 January 2012 в 22:59
поделиться