两个不同表的MySQl比较
我有两个包含这些结构的表:
表1
FullContact
-----------
id
name
phone
address
email
phone
registration
marketingId
created
表2
Contacted
-----------
first_name
last_name
email
FullContact表包含人员,而且“联系人”可能包含相同的个人,但会以奇怪的列结构返回给我。
FullContact可能包含重复项,而且联系人没有重复项。
主要目标:我想看看Contact中有多少人在FullContact中。
我试图运行的查询是这种形式:
SELECT distinct fc.name, fc.email, fc.phone, concat_ws(" ",c.first_name, c.last_name),
c.phone from Contacted c
INNER JOIN FullContact fc
ON ( concat_ws(" ", c.first_name,
c.last_name) = fc.name or c.email = fc.email or (fc.phone REGEXP '[0-9]+$') = c.phone)
and fc.created >= '2011-11-01';
查询说明: 我试图通过使用内部联接和三个字符串参数和日期参数约束来选择FullContact中与联系相同的项目。
问题: 我创建了select语句来显示FullContact中的项目结果和来自联系人的项目。结果包含FullContact列唯一且Contact值重复。
这是正确的查询吗?
由于
答案 0 :(得分:0)
您正在检查那里的三个重复项,名称,电子邮件或电话。 因此,如果您使用相同的电子邮件有两个不同的名称,则会在结果中获得两个记录。我本来期望并且在on子句中。