在MySQL數(shù)據(jù)庫中,查詢多表信息是非常常見的操作,而在查詢過程中,有時候也需要對這些查詢到的數(shù)據(jù)進行修改,這就需要我們學習如何進行多表查詢數(shù)據(jù)修改操作了。
下面我們將使用一個示例演示如何進行多表查詢數(shù)據(jù)修改操作:
-- 創(chuàng)建兩個表 CREATE TABLE `user` ( `id` INT NOT NULL, `name` VARCHAR(20), PRIMARY KEY (`id`) ); CREATE TABLE `order` ( `id` INT NOT NULL, `order_number` VARCHAR(50), `user_id` INT NOT NULL, PRIMARY KEY (`id`), INDEX `user_id_index` (`user_id`) ); -- 插入數(shù)據(jù) INSERT INTO `user` (`id`, `name`) VALUES (1, 'Lucy'); INSERT INTO `user` (`id`, `name`) VALUES (2, 'Tom'); INSERT INTO `order` (`id`, `order_number`, `user_id`) VALUES (1, '20190301001', 1); INSERT INTO `order` (`id`, `order_number`, `user_id`) VALUES (2, '20190301002', 2); INSERT INTO `order` (`id`, `order_number`, `user_id`) VALUES (3, '20190301003', 2);
上述代碼創(chuàng)建了兩個表,分別為`user`和`order`,并插入了一些測試數(shù)據(jù)。我們現(xiàn)在需要將`order`表中的`user_id`為2的記錄修改為`user_id`為1,也就是將Tom的訂單轉移到Lucy賬戶下。
下面是修改操作的SQL語句:
UPDATE `order` INNER JOIN `user` ON `order`.`user_id`=`user`.`id` SET `order`.`user_id`=1 WHERE `user`.`name`='Tom';
上述SQL語句使用了`INNER JOIN`語法,聯(lián)合了`order`和`user`兩個表,同時使用了`SET`關鍵字來修改`order`表中`user_id`的值。其中`WHERE`語句限定了修改條件,即`user`表中姓名為Tom的記錄。
通過上述代碼,我們成功地將`user_id`為2的記錄修改為了`user_id`為1,Tom的訂單也成功被轉移到Lucy賬戶下了。