我有四张表具有相同的结构。假设他们有一个列名。我需要检查table1
的列name
中是否存在table2
列名称中的值。
如果存在,我需要在name
的{{1}}列中插入此名称,在table3
的{{1}}列中插入。
答案 0 :(得分:0)
假设INSERT
和Postgres ......
我会使用data-modifying CTE(Postgrs 9.1+),其中一个SELECT
和两个INSERT
:
WITH cte AS (
SELECT t1.name, t2.name IS NULL AS t2_missing
FROM table1 t1
LEFT JOIN table2 USING (name)
)
, ins AS (
INSERT INTO table3 (name)
SELECT name FROM cte WHERE NOT t2_missing
)
INSERT INTO table4 (name)
SELECT name FROM cte WHERE t2_missing;
在MySQL中也是不可能的(没有CTE,更不用说可写的CTE)。