Porównanie i odmiana imion, dwie tabele, jak połaczyć

0

Witajcie

Czy jest możliwość zrobienia czegoś takiego, że:

tabela1
dane1 ;dane2 ;dane3; imie ; imie_odmienione(puste)

tabela2
imie ; imie_odmienione

W tabela1 mam różne dane w tym imie.
W tabela2 mam spis imion i obok ich odmiany czyli imie=Piotr , imie_odmienione=Piotrze

Chciałbym w tabela1 dodać kolejną kolumnę np imie_odmienione i żeby w tym polu pojawiało się właśnie odmienione imie pobierając dane z tabela2 gdzie mam wszystkie ich odmiany.
czyli jak skojarzyć żeby imie_odmienione zostało wyszukane z tabela2 i wpisane w imie_odmienione w tabela1

Nie wiem jak sie za to zabrac.

Z gory dziekuje za pomoc

Pozdrawiam
M

2

Poczytaj o złączeniach - tutaj przyda się left join.

0

Na tym sie zatrzymałem, ale dzięki

1

Noto jak ju dodasz t kolumne to

Update
    tabela1
set
    imie_odmienione = tabela2/imie_odmienione
from
    tabela1
    inner join tabela2 on tabela1.imie=tabela2.imie
0

Dziękuję.

Mógłbyś mi jeszcze podpowiedzieć jak zrobić warunek
Porównanie imie(tabela1) z imie(tabela2) i jeżeli znajdzie pasujące imiona w tabela2, to wyświetli je w odmienione_imie w tabela3

tabela1
dane1 ;dane2 ;dane3; imie

tabela2
imie ; imie_odmienione

tabela3
odmienione_imie

M

1

Nie wiem czy do końca rozumiem, ale tak:

select
    imie_odmienione
from 
    tabela2
where
    imie in (select distinct imie from tabela1)

lub

select distinct
    imie_odmienione
from 
    tabela1
    inner join tabela2 on tabela2.imie=tabela1.imie
0

Dziekuje

a czy można w jakis sposób takiego selecta dodać w case po ELSE?

W sensie: case when warunek then cośtam else (SELECT DISTINCT imie_odmienione FROM tabela1 INNER JOIN tabela2 ON tabela2.imie=tabela1.imie ) end as cośtam

Próbuje a on mi wypluwa Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.

1

Błąd wynika z tego, ze podzapytania zwraca więcej niż jeden rekord, mozna tak:

SELECT DISTINCT
    case when warunek then costam else imie_odmienione end
FROM 
    tabela1
    INNER JOIN tabela2 ON tabela2.imie=tabela1.imie

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0