表1有101,915行,表2有49,466行,所有这些都存在于表1中。表1在查询后应该有101,915-49,466 = 52,449。
我尝试查询左联接,但它仅返回8,269行。
SELECT
A.*
FROM
`table1` A
LEFT JOIN
`table2` B
ON
A.interval_uid = B.interval_uid
WHERE
B.interval_uid IS NULL
我使用interval_uid作为键字段,但是两个表中所有重复的行都是相同的。
答案 0 :(得分:1)
尝试一下,如果架构相同,则应遵循
INSERT INTO `table3` SELECT
*
FROM
`table1` A
WHERE
A.interval_uid NOT IN (SELECT B.interval_uid FROM `table2` B)
答案 1 :(得分:1)
尝试对SQL使用运算符 EXCEPT 。需要更多信息,请找到here
SELECT col1, col2, col3,..
FROM table1
EXCEPT
SELECT col1, col2, col3,..
FROM table2;
插入查询,如下所示:
Insert into table3
SELECT col1, col2, col3,..
FROM table1
EXCEPT
SELECT col1, col2, col3,..
FROM table2;
注意:查询中指定的列必须与表1和表2等价。
答案 2 :(得分:1)
请在下面的查询中使用您想要的结果。
WITH CTE
AS (
SELECT *
FROM Table_1
EXCEPT
SELECT *
FROM Table_2
)
INSERT INTO Table_3
SELECT *
FROM CTE
如果您不想在表3中插入,请尝试执行此操作。
SELECT * FROM Table_1
EXCEPT
SELECT * FROM Table_2
答案 3 :(得分:0)
您可以使用以下逻辑-
注意:删除操作存在风险。请先尝试使用测试数据。
DELETE table1
FROM table1
INNER JOIN table2 ON Table1.interval_uid = Table2.interval_uid
答案 4 :(得分:-1)
这就是我想要的:
querySelector