У меня есть две таблицы, подобные следующей:
parameters1
+------+-----+
| cod | des |
+------+-----+
| 1 | aaa |
| 2 | bbb |
| 3 | ccc |
parameters2
+------+-----+
| 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).