两个不同表的MySQl比较
我有两个具有这些结构的表:
表1
FullContact
-----------
id
name
phone
address
email
phone
registration
marketingId
created表2
Contacted
-----------
first_name
last_name
emailFullContact表包含人员,而Contacted可能包含相同的人员,但以奇怪的列结构返回给我。
FullContact可能包含重复项,但联系的and没有重复项。
主要目标:我想看看在FullContact中有多少来自Contacted。
我尝试运行的查询是这样的形式:
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的项目和来自Contacted的项目的结果。结果包含唯一的FullContact列和重复的Contact值。
这是要运行的正确查询吗?
谢谢
发布于 2011-11-15 09:30:49
您正在检查其中的三个重复项,姓名、电子邮件或电话。因此,如果你有两个不同的名字和相同的邮箱,你会在结果中得到两条记录。我本应在on子句中使用and。
https://stackoverflow.com/questions/8130287
复制相似问题