Резюме: мне нужно профсоюзная запись один и те же таблицы из баз данных, названных лет как prefix_2012
, prefix_2013
, prefix_2014
- без двуличности на основе уникального id
ключа. Третья сторона определяется по базе данных, и я не могу ее изменить.Как данные UNION без дубликатов относительно ключа?
Можно ли определить его как вид?
Подробнее: Позвольте более подробному объяснению того, что я хочу, описано в следующем примере. Он возвращает все записи со всеми двуличностями.
SELECT
id,
a,
b
FROM prefix_2014.mytable
UNION ALL
SELECT
id,
a,
b
FROM prefix_2013.mytable
UNION ALL
id,
a,
b
FROM prefix_2012.mytable
При замене UNION ALL
на UNION
только идентичные записи объединяются. (То есть только тогда, когда значения во всех столбцах одинаковы. Я прав?)
Когда новый год создаются баз данных, все открытых записей передаются с прошлым годом, а в прошлом году база данных содержание заморожено. Перенесенные записи первоначально дублируются в техническом смысле (одинаковые значения во всех столбцах). Однако содержимое переданных записей с тем же id
может быть изменено позже.
Вопрос: на основе уникальной id
, как я могу союз записи из всех баз данных на основе года, так что, если запись происходит от более позднего года, в предыдущие годы записи игнорируются в двуличности? Можно ли это сделать без явного цикла и без временных таблиц? Можно ли написать это мнение?
Является ли идентификатор непрерывным между таблицами? Вы просто хотите уникальных a, b через эти таблицы? – Hozikimaru
Только идентификатор уникален. А и могут быть изменены. Мне нужно только самое новое a, b. Не все идентификаторы копируются на новый год. – pepr
Какой сервер баз данных вы используете? Oracle? DB2? –