#sql #postgresql
Вопрос:
У меня есть две таблицы в моей базе данных postgresql, как показано ниже.
[Table A] [Table B] Name no Name no ------ ------ ------ ------ 1. Adam 1 1. Candy null 2. Bob 2 2. Evan null 3. Candy 3 3. David null 4. David 4 4. Bob null 5. Evan 5 5. Adam null
[Имя таблицы B] имеет свой внешний ключ, связанный с [Именем таблицы A].
[Таблица B нет] только что создана командой alter table.
Что я хочу здесь, так это заполнить столбец [Таблица B нет] в соответствии с [Таблица A нет].
таким образом, результат должен быть ниже.
[Table B] no ------ 3 5 4 2 1
Есть ли какой-нибудь хороший способ добиться этого с помощью SQL?
Комментарии:
1. Покажите нам определения таблиц.
2. Какова цель новой колонки «нет»? (Вы не должны публиковать копии данных.)
Ответ №1:
UPDATE "Table B" AS b SET no = a.no FROM "Table A" WHERE b.name = a.name AND b.no IS NULL
Ответ №2:
Почему нет JOIN
?
SELECT b.no FROM [Table A] as a INNER JOIN [Table B] as b ON a.Name=b.Name