Mysqlマルチテーブル操作(削除・変更)
4915 ワード
mysqlは、あるフィールドに挿入されないsqlがすでに存在する場合、あるテーブルのデータを別のテーブルに更新します.
栗を挙げます.
mysqlは、あるフィールドに挿入されないsqlがすでに存在する場合、あるテーブルのデータを別のテーブルに挿入します.
注意:
-1つのテーブルのクエリー結果を別のテーブルに挿入する方法(2つのテーブルの構造が異なる)、挿入されたフィールドの数とクエリーのフィールドの数が一致する必要があります.クエリー・テーブル2のフィールドと挿入テーブル1のフィールドが一致する必要があります.
栗を挙げます.
改善後:
インスタンスサブsql文要件:mysqlは、1つのテーブルのデータを別のテーブルに挿入し、フィールドに挿入されないsqlがすでに存在する場合
update 1 1
left join ( select 1, 2 from 2 ) 2
on . = 1.
set 1. 1= 2. 1, 1. 2= 2. 2
栗を挙げます.
UPDATE USER t1
LEFT JOIN (
SELECT
user_id,
min(date_time) date_time
FROM
ctoc_tb
GROUP BY
user_id
) t2 ON t2.user_id = t1.user_id
SET t1.date_time = t2.date_time
mysqlは、あるフィールドに挿入されないsqlがすでに存在する場合、あるテーブルのデータを別のテーブルに挿入します.
注意:
-1つのテーブルのクエリー結果を別のテーブルに挿入する方法(2つのテーブルの構造が異なる)、挿入されたフィールドの数とクエリーのフィールドの数が一致する必要があります.クエリー・テーブル2のフィールドと挿入テーブル1のフィールドが一致する必要があります.
insert into 1( 1, 2, 3...) select 1, 2, 3.. from 2 where ..
栗を挙げます.
insert into A(id,names) select id,firstName from B; mysql
改善後:
insert into A(id,names) select id,firstName as names from B; mysql
インスタンスサブsql文要件:mysqlは、1つのテーブルのデータを別のテーブルに挿入し、フィールドに挿入されないsqlがすでに存在する場合
INSERT INTO city_tb (ip, country, province, city)
SELECT DISTINCT (remote_ip) ip,
'' country,
'' province,
'' city
FROM
ctoc_tb
WHERE NOT EXISTS(
SELECT
ip
FROM
city_tb
WHERE
city_tb.ip = ctoc_tb.remote_ip
)