mam następujące dwie tabele:SQL: Aktualizacja tabeli poprzez mapowanie dwie kolumny do siebie
Table A
+-------------------+
|___User___|__Value_|
| 3 | a |
| 4 | b |
| 5 | c |
|____6_____|__d_____|
Table B
+-------------------+
|___User___|__Value_|
| 1 | |
| 4 | |
| 5 | |
|____9_____|________|
moim zadaniem jest wziąć user
z tabeli A (i ich correspondings value
), a następnie map go do tabeli B i wstaw tam te wartości. Tak więc z powyższego przykładu Tabela B powinien wyglądać po uruchomieniu skryptu:
Table B
+-------------------+
|___User___|__Value_|
| 1 | |
| 4 | b |
| 5 | c |
|____9_____|________|
Moje pytanie brzmi: w jaki sposób można skonstruować zapytanie SQL, który zrobi to dla mnie w sposób efektywny, jeśli Tabela A zawiera 300.000 + wpisy i Tabela B zawiera 70 000 wpisów?
UWAGI: W Tabeli A pole User
nie jest wyjątkowy i nie jest polem Value
. Jednak w Tabeli B zarówno pola User
, jak isą unikalne i nie powinny pojawiać się więcej niż jeden raz. Nie są też klucze podstawowe dla obu tabel.
Więc jeśli masz 2 wartości odpowiadające jednemu użytkownikowi na b, która z tych wartości powinna zostać użyta do aktualizacji? – Mihai
Jeśli istnieje więcej niż jeden wiersz dla tego samego "użytkownika" w Tabeli A, "wartość" tego wiersza powinna zostać skopiowana do B? –
Dobre pytanie @AlanHadsell - nie ma znaczenia, który wiersz zostanie skopiowany - może to być zarówno pierwsze zdarzenie, jak i ostatnie z wszystkiego, co znajduje się w kolumnie "wartość" tabeli A – user1775598