Wydaje się, że idziesz w złym kierunku. Twój oryginalny, znormalizowany schemat jest zazwyczaj lepszy. Jeśli chcesz wyświetlić sklep / użytkownika, utwórz VIEW .
Ale możesz mieć swoje powody, więc oto idzie:
UPDATE purchases p
SET (shop, shop_user) = (s.name, s."user")
FROM shop s
WHERE s.id = p.shop_id;
Nie używaj zastrzeżonego słowa "user" jako identyfikator.
A „imię” rzadko kiedy jest dobrym imieniem .
I varchar(255) w Postgresie zazwyczaj oznacza nieporozumienie.
O varchar(255) :
varchar(255) - Czy powinienem dodać dowolny limit długości do kolumn VARCHAR?
- Jakieś wady używania typu danych „tekst” do przechowywania ciągów?
- Więcej szczegółów w instrukcji.