勵志

勵志人生知識庫

update多表

MySQL中,更新多個表的基本語法是:

```sql

UPDATE table1, table2, ... SET column1 = value1, column2 = value2, ... [WHERE conditions]

```

這個語法中,`table1`, `table2`, ... 是要更新的表的名字,`SET` 後面列出要更新的列及其對應的值,`WHERE` 後面則是篩選條件的子句。

例如,如果我們要更新兩個表`product`和`product_price`,我們可以使用以下語句:

```sql

UPDATE product p, product_price pp

SET pp.price = p.price

WHERE p.productid = pp.productid;

```

這個例子中,我們更新了`product_price`表中的`price`列,條件是`product`表中的`productid`與`product_price`表中的`productid`相等。

此外,我們還可以使用`INNER JOIN`、`LEFT JOIN`、`RIGHT JOIN`和`OUTER JOIN`來連線多個表,並在`SET`子句中使用不同的列進行更新。例如,使用`INNER JOIN`連線兩個表,並更新連線後的表中的列:

```sql

UPDATE product p INNER JOIN product_price pp

ON p.productid = pp.productid

SET pp.price = p.price;

```

在更新多個表時,需要注意的是,每條滿足條件的記錄都會被更新一次,即使該記錄多次匹配條件。此外,更新多個表的語法不能與`ORDER BY`和`LIMIT`關鍵字一起使用。