在数据库测试、备份时经常使用到的需求:某个表需要insert一批数据,这些数据是select某个表得到的数据的一部分或者全部。这时就需要insert的子查询语句了——插入查询到的值。
使用方法示例:
INSERT INTO taa (id, aid, rid)
(SELECT
NULL,
ao.id,
0
FROM tao ao
LEFT JOIN taa aa ON ao.id = aa.aid
WHERE ao.id NOT IN (SELECT aid
FROM taa));
说明:
insert一批数据,这些数据由select子查询拼装成,select查询的条件是tao表中存在,但taa表中不存在的id(aid)。
这个语句中数据库调试、测试的时候非常好用。 |