ho le seguenti due tabelle:SQL: tavolo Aggiornamento di mappatura due colonne a vicenda
Table A
+-------------------+
|___User___|__Value_|
| 3 | a |
| 4 | b |
| 5 | c |
|____6_____|__d_____|
Table B
+-------------------+
|___User___|__Value_|
| 1 | |
| 4 | |
| 5 | |
|____9_____|________|
Il mio compito è quello di prendere user
dalla Tabella A (e le loro correspondings value
) e poi mappare alla tabella B e inserisci quei valori lì dentro. Così dall'esempio precedente tabella B dovrebbe essere simile a questo dopo l'esecuzione dello script:
Table B
+-------------------+
|___User___|__Value_|
| 1 | |
| 4 | b |
| 5 | c |
|____9_____|________|
La mia domanda è come posso costruire una query SQL che farà questo per me in modo efficiente, se la tabella A contiene 300.000 + le voci e la tabella B contiene 70.000 voci?
NOTE: In tabella A campo User
non è unico e nessuno dei due è il campo Value
. Tuttavia nella Tabella B, entrambi i campi User
e Value
sono unici e non dovrebbero apparire più di una volta. Né sono le chiavi primarie per entrambe le tabelle.
Quindi se si hanno 2 valori in un corrispondente con 1 utente in b quale di questi valori deve essere utilizzato per l'aggiornamento? – Mihai
Se c'è più di una riga per lo stesso 'utente' nella Tabella A, quale' valore' della riga deve essere copiato in B? –
Buona domanda @AlanHadsell - non importa quale riga viene copiata: può essere la prima occorrenza o l'ultima di tutto ciò che è nella colonna 'valore' per la Tabella A – user1775598