比较2个MySQL表

时间:2011-04-08 21:40:46

标签: mysql

我的数据库中有2个表,我需要检查这个表是否在其中一个表中。我有一个表存储firstName,lastName,地址,城市,州,zip样本。然后有一个客户表也有此信息。我需要做的是弄清楚样品中的人没有成为顾客。我没有关于如何为此运行查询的第一个线索,因为我尝试了多个连接以及什么都无济于事。任何帮助,找出如何找出人们没有成为客户的样本将是有帮助的。谢谢。

3 个答案:

答案 0 :(得分:2)

这会尝试根据姓名和地址来匹配此人(地址已注释掉,或根据需要添加城市,邮政编码,状态)。
如果联接不成功,则意味着该人永远不会成为客户(至少不是相同的名/姓) - 这是使用c.firstname IS NULL条件进行测试的

select p.*
from person p
left join customer c on
   on p.firstname = c.firstname
  and p.lastname  = c.lastname
 #and p.address   = c.address
where c.firstname is null

答案 1 :(得分:0)

SELECT * FROM `tableA` LEFT JOIN `customers` ON `tableA`.`id`=`customers`.`id` WHERE `customers`.`id` IS NULL

它应该有效,因为当你离开连接时,它会从两个表中获取所有记录并连接它们。如果没有第二个表的记录,它将用null替换列;因此,如果他们不是客户,则列为空。

答案 2 :(得分:0)

SELECT s.*
    FROM samples s
    WHERE NOT EXISTS(SELECT NULL 
                         FROM customers c
                         WHERE s.firstName = c.firstName
                           AND s.lastName = c.lastName
                           AND s.address = c.address                                 
                           AND s.city = c.city                                 
                           AND s.state = c.state                                 
                           AND s.zip = c.zip)