Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PostgreSQL Новый топик    Ответить
 Назначение ID из другой таблицы  [new]
Uiliop
Member

Откуда:
Сообщений: 1
Здравствуйте, сложилась такая ситуация:
Есть 2 таблицы: уникальные значения (табл №1) и неполные дубли уникальных (табл №2), вопрос такой, а как сделать так чтобы в Таблице №2 в поле new_id ставилось значение из таблицы №1 id оригинальной записи, чтобы было:

id - имя - фамилия - дата рождения - email - new_id
10 - Саша - Иванов - 01.02.2000 - ivan@mail.ru - 1
11 - Саша - Иванов - 01.02.2000 - ivan@mail.ru - 1
12 - Ваня - Сидоров - 02.03.2000 - sidr@mail.ru - 2
13 - Ваня - Сидоров - 02.03.2000 - sidr@mail.ru - 2
14 - Ваня - Сидоров - 02.03.2000 - sidr@mail.ru - 2
15 - Таня - Ваникова - 04.01.2000 - tanya@mail.ru - 3
16 - Таня - Ваникова - 04.01.2000 - tanya@mail.ru - 3
17 - Таня - Ваникова - 04.01.2000 - tanya@mail.ru - 3
18 - Таня - Ваникова - 04.01.2000 - tanya@mail.ru - 3
19 - Лида - Семенова - 04.05.2000 - lidya@mail.ru - 4
20 - Лида - Семенова - 04.05.2000 - lidya@mail.ru - 4
.................................................



Таблица №1.
Оригинальная таблица с уникальными значениями.
id - имя - фамилия - дата рождения - email
1 - Саша - Иванов - 01.02.2000 - sasha@mail.ru
2 - Ваня - Сидоров - 02.03.2000 - sidr@mail.ru
3 - Таня - Ваникова - 04.01.2000 - tanya@mail.ru
4 - Лида - Семенова - 04.05.2000 - lidya@mail.ru
..................................




Таблица №2.
Дубли оригинальной таблицы №1.
id - имя - фамилия - дата рождения - email - new_id
10 - Саша - Иванов - 01.02.2000 - ivan@mail.ru - пустое поле
11 - Саша - Иванов - 01.02.2000 - ivan@mail.ru - пустое поле
12 - Ваня - Сидоров - 02.03.2000 - sidr@mail.ru - пустое поле
13 - Ваня - Сидоров - 02.03.2000 - sidr@mail.ru - пустое поле
14 - Ваня - Сидоров - 02.03.2000 - sidr@mail.ru - пустое поле
15 - Таня - Ваникова - 04.01.2000 - tanya@mail.ru - пустое поле
16 - Таня - Ваникова - 04.01.2000 - tanya@mail.ru - пустое поле
17 - Таня - Ваникова - 04.01.2000 - tanya@mail.ru - пустое поле
18 - Таня - Ваникова - 04.01.2000 - tanya@mail.ru - пустое поле
19 - Лида - Семенова - 04.05.2000 - lidya@mail.ru - пустое поле
20 - Лида - Семенова - 04.05.2000 - lidya@mail.ru - пустое поле
....................
28 янв 21, 12:47    [22270672]     Ответить | Цитировать Сообщить модератору
 Re: Назначение ID из другой таблицы  [new]
maxkar
Member

Откуда:
Сообщений: 168
Uiliop,

А когда "ставилось"?

Если одноразово смотрите на update from: здесь, там и примеры есть. Что-то в духе

UPDATE "Таблица №2" AS t2
SET
  new_id = t1.id
FROM "Таблица №1" AS t1
WHERE t2."имя" = t1."имя" 
  AND t2."фамилия" = t1."фамилия" 
  AND t2."дата рождения" = t1."дата рождения"
  AND t2.email = t1.email


Можно еще подзапросом сделать.

Или вам нужно чтобы "само ставилось"? Тогда смотрите на триггеры.
3 фев 21, 21:32    [22274353]     Ответить | Цитировать Сообщить модератору
Все форумы / PostgreSQL Ответить