MySQL Update Bli med for kryss-tabelloppdatering

MySQL Update Bli med for kryss-tabelloppdatering

I de siste versjonene av MySQL kan du utføre en tverrbordsoppdatering, også kjent som en korrelasjonstabelloppdatering der du kan bli med i to eller flere tabeller. Ved hjelp av MySQL Join (indre og til venstre) og oppdatere spørring, kan vi utføre en tverrbordsoppdatering i veldig enkle trinn.

Denne opplæringen vil lede deg gjennom hvordan du utfører MySQL Cross-Table-oppdateringer ved hjelp av Native MySQL-kommandoer.

Grunnleggende syntaks

Den generelle syntaksen for en grunnleggende MySQL -oppdateringsspørsmål er:

Oppdater DB.Tabell1, DB.Tabell2,
[Venstre bli med | Indre join] db.Tabell1 på DB.Tabell1.Kolonne1 = db.Tabell2.Kolonne2
Sett DB.Tabell1.colum2 = db.Tabell2.Kolonne2, db.Tabell2.kolonne3 = uttrykk
Hvor [tilstand]

La oss dele opp spørringen over i mindre deler slik at vi kan forstå det bedre.

Vi begynner med å definere hovedtabellen. I dette tilfellet, (db.Tabell1) etterfulgt av tabellen vil vi være med på ved hjelp av oppdateringserklæringen, i dette tilfellet, DB.Tabell2.

MERK: Det er viktig å spesifisere minst en tabell etter oppdateringserklæringen; Ellers vil ikke radene i tabellen oppdatere etter spørringen.

I den andre delen av spørringen spesifiserer vi den spesifikke typen som vi vil utføre, jeg.e., Indre eller venstre bli med og en sammenføyningspredikat. Sett alltid Join -spørringen umiddelbart etter oppdateringsspørsmålet.

En sammenføyningsprøving er en spesifikk sammenføyningstilstand som evaluerer til en boolsk verdi.

I den følgende delen setter vi nye verdier til kolonnene til DB.Tabell1 og db.Tabell2.

Til slutt setter vi en tilstand ved å bruke hvor leddet, som hjelper til med å begrense radene som gjennomgår oppdateringen.

Eksempel Bruk sak

Anta at du har to tabeller, kalt TB1 og TB2; Vurder en spørring nedenfor for å opprette tabeller og legge til data.

Opprett database hvis ikke eksisterer Sample_DB;
Bruk prøve_db;
Lag tabell TB1 (
col1 int (11) ikke null,
col2 int ikke null,
Primærnøkkel (Col1)
);
Lag tabell TB2 (
col1 int ikke null auto_increment,
col2 varchar (100) ikke null,
col3 int standard null,
col4 int standard null,
Primærnøkkel (Col1)
);
Sett inn i TB1 (Col1, Col2) verdier (1,0), (2,1), (3,3), (4,4), (5,5);
Sett inn TB2 (Col2, Col3, Col4) verdier ("First", 1, 500), ("Second", 2, 1000), ("Third", 3, 1500), ("Fjerde", 4, 2000) , ("Femte", 5, 2500);

I tabellene som er opprettet ved hjelp av spørringen over, kan vi utføre en oppdateringsspørsmål ved hjelp av indre sammenføyningsuttalelse da tabeller er koblet på COL2.

Tenk på spørringen nedenfor:

Bruk prøve_db;
Oppdater tb2 indre bli med tb1 på tb2.Col3 = tb1.Col1 sett Col3 = Col4 + Col4 * 5;

Siden vi ønsker å oppdatere dataene i den andre tabellen (COL3) der vi får verdiene på kolonnene og multipliser med 5, i eksemplet over, tar vi ut hvor tilstanden fordi vi ønsker å oppdatere alle postene i den spesifiserte tabellen.

Du kan bekrefte dette ved hjelp av SELECT -spørringen som vist nedenfor:

Velg * fra Sample_DB.tb2;

Utgangen som vist nedenfor:

mysql> velg * fra sample_db.tb2;
+------+--------+-------+------+
| col1 | col2 | col3 | col4 |
+------+--------+-------+------+
| 1 | Først | 3000 | 500 |
| 2 | Andre | 6000 | 1000 |
| 3 | Tredje | 9000 | 1500 |
| 4 | Fjerde | 12000 | 2000 |
| 5 | Femte | 15000 | 2500 |
+------+--------+-------+------+
5 rader i settet (0.00 sek)

Konklusjon

I denne raske opplæringen diskuterte vi hvordan du bruker MySQL -oppdateringsspørsmålet som lar deg kombinere tabeller og oppdatere verdier deretter.

For å lære mer om hvordan du kan utvide denne funksjonen, bør du vurdere ressursene som er gitt nedenfor:

https: // dev.mysql.com/doc/refman/8.0/no/oppdatering.html

https: // dev.mysql.com/doc/refman/8.0/no/Bli med.html