我有两个包含重复值和唯一值的表我不需要两个表中的重复值我只需要唯一值并将其作为输出复制到新表中。
例如:
Table 1 data
col1
101
102
103
104
Table 2 data
col1
101
102
103
105
所需的输出是
New Table 3 data
col1
104
105
查询
SELECT
Table 1 data.col1
FROM
Table 1 data
LEFT JOIN
Table 2 data
ON
Table 1 data.col1 = Table 2 data.col1
WHERE
Table 2 data.col1 is NULL
答案 0 :(得分:1)
希望这会有所帮助:
(SELECT t1.col1 FROM t1 left join t2 on t1.col1 =t2.col1 WHERE t2.col1 is null) union (SELECT t2.col1 FROM t2 left join t1 on t1.col1=t2.col1 WHERE t1.col1 is null)
答案 1 :(得分:1)
使用带有UNION的下方查询:
(SELECT Table1.column1 FROM Table1 left join Table2 on Table1.column1 =Table2.column1 WHERE Table2.column1 is null)
union
(SELECT Table2.column1 FROM Table2 left join Table1 on Table1.column1=Table2.column1 WHERE Table1.column1 is null)
答案 2 :(得分:0)
从两个表中获取不同的值(使用UNION)来生成 101 102 103 104 105
然后从两个表中获取交叉数据(使用INNER JOIN)来生成 101 102 103
之后,从结果1中减去结果2(在Oracle中你可以使用MINUS运算符,但你可以使用相同的想法在mysql中使用NOT IN运算符构建复杂查询)
答案 3 :(得分:0)
希望这会奏效。我在Oracle数据库中尝试过。希望它也适用于MYSQL。
SELECT col1 FROM tab1 outers WHERE NOT EXISTS (SELECT col1 FROM tab2 inners WHERE outers.COL1 = inners.COL1) UNION SELECT col1 FROM tab2 outers WHERE NOT EXISTS (SELECT col1 FROM tab1 inners WHERE outers.COL1 = inners.COL1);
答案 4 :(得分:0)
INSERT INTO表3数据(clo1)SELECT CombinedValue FROM(SELECT DISTINCT col1 AS CombinedValue FROM Table 1 data UNION ALL SELECT DISTINCT col1 FROM Table 2 data)temp GROUP BY CombinedValue HAVING COUNT(*)= 1
此查询对我有用:)
谢谢大家的帮助