У меня есть две таблицы следующего вида :
параметры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).