Atualização do MySQL Juntar para atualização cruzada

Atualização do MySQL Juntar para atualização cruzada

Nas versões mais recentes do MySQL, você pode executar uma atualização cruzada, também conhecida como atualização da tabela de correlação, onde você pode se juntar a duas ou mais tabelas. Usando o mysql junção (interna e esquerda) e atualizar consulta, podemos executar uma atualização cruzada em etapas muito simples.

Este tutorial o levará a como executar atualizações cruzadas do MySQL usando comandos nativos do MySQL.

Sintaxe básica

A sintaxe geral para uma atualização básica do MySQL, a consulta de junção é:

Atualizar DB.Tabela1, db.mesa 2,
[Junção à esquerda | Junção interna] DB.Tabela1 em dB.tabela 1.coluna 1 = db.mesa 2.coluna2
Set db.tabela 1.COLUM2 = dB.mesa 2.coluna2, db.mesa 2.coluna3 = expressão
Onde [condição]

Vamos quebrar a consulta acima em partes menores para que possamos entender melhor.

Começamos definindo a tabela principal. Nesse caso, (dB.tabela 1) Seguido pela tabela, queremos entrar usando a declaração de atualização, neste caso, DB.mesa 2.

OBSERVAÇÃO: É importante especificar pelo menos uma tabela após a instrução de atualização; Caso contrário, as linhas na tabela não serão atualizadas após a consulta.

Na segunda parte da consulta, especificamos o tipo específico de junta que queremos realizar, eu.e., Junção interna ou esquerda e um predicado de junção. Sempre defina a consulta de junção imediatamente após a consulta de atualização.

Um predicado de junção é uma condição de junção específica que avalia um valor booleano.

Na parte seguinte, definimos novos valores para as colunas de DB.Tabela1 e dB.mesa 2.

Por fim, definimos uma condição usando a cláusula WHERE, que ajuda a limitar as linhas que passam pela atualização.

Exemplo de uso de uso

Suponha que você tenha duas tabelas, chamadas TB1 e TB2; Considere uma consulta abaixo para criar tabelas e adicionar dados.

Crie banco de dados, se não existe Sample_db;
Use sample_db;
Crie a Tabela TB1 (
col1 int (11) não nulo,
col2 int não nulo,
Chave primária (col1)
);
Crie Tabela TB2 (
col1 int não nulo auto_incrent,
col2 varchar (100) não nulo,
col3 int padrão nulo,
col4 int padrão nulo,
Chave primária (col1)
);
Inserir valores de Tb1 (Col1, Col2) (1,0), (2,1), (3,3), (4,4), (5,5);
Insira no TB2 (Col2, Col3, Col4) valores ("Primeiro", 1, 500), ("Segundo", 2, 1000), ("Terceiro", 3, 1500), ("Quarto", 4, 2000) , ("Quinto", 5, 2500);

Nas tabelas criadas usando a consulta acima, podemos executar uma consulta de atualização usando a declaração de junção interna, pois as tabelas estão vinculadas no col2.

Considere a consulta abaixo:

Use sample_db;
Atualize TB2 INNER JONE TB1 no TB2.COL3 = TB1.COL1 SET COL3 = COL4 + COL4 * 5;

Como queremos atualizar os dados na segunda tabela (COL3), onde obtemos os valores das colunas e multiplicamos por 5, no exemplo acima, retiramos a condição onde queremos atualizar todos os registros na tabela especificada.

Você pode confirmar isso usando a consulta Selecionar como mostrado abaixo:

Selecione * de sample_db.tb2;

A saída como mostrado abaixo:

mysql> selecione * de sample_db.tb2;
+------+--------+-------+------+
| col1 | col2 | COL3 | COL4 |
+------+--------+-------+------+
| 1 | Primeiro | 3000 | 500 |
| 2 | Segundo | 6000 | 1000 |
| 3 | Terceiro | 9000 | 1500 |
| 4 | Quarto | 12000 | 2000 |
| 5 | Quinta | 15000 | 2500 |
+------+--------+-------+------+
5 linhas no set (0.00 seg)

Conclusão

Neste tutorial rápido, discutimos como usar a consulta de junção de atualização do MySQL, que permite combinar tabelas e atualizar valores de acordo.

Para saber mais sobre como você pode expandir esse recurso, considere os recursos fornecidos abaixo:

https: // dev.mysql.com/doc/refman/8.0/EN/UPDATE.html

https: // dev.mysql.com/doc/refman/8.0/EN/JON.html