我有两个数据库,它们是在同一时间开始的。这些现在需要合并为一个。为了避免重复,我想从第二个中删除两个条目。如果我在下面运行查询,它将自动删除重复项:-

SELECT idClient, LastName, FirstName
   FROM `ABC`.`Client`
   WHERE idClient > 1000
UNION
SELECT  idClient, LastName, FirstName
   FROM `XYZ`.`Client`
   WHERE idClient > 1000;


但是,我要返回的唯一条目是重复的条目,但无法计算出实现该要求的语法。

最佳答案

如果要复制的内容,可以使用exists

SELECT idClient, LastName, FirstName
FROM `ABC`.`Client` ac
WHERE idClient > 1000 AND
      EXISTS (SELECT 1
              FROM `XYZ`.`Client` xc
              WHERE xc.idClient = ac.idClient AND xc.LastName = ac.LastName AND
                    xc.FirstName = ac.FirstName AND
                    xc.idClient > 1000
             );


注意:这将不会返回具有NULL值的列。

关于mysql - 仅选择仅出现在两个MySQL数据库的每个表中的那些项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46073635/

10-10 16:52