Mysql sql查询如何比较两个不同表的列中的值
陛下 我有两个表tab1和tab2,详情如下 tab1-(名称按Firstname、MiddleName、LastName的顺序排列) 表2-(名称的顺序为Lastname、FirstName、Middlename) 我想得到这样的结果Mysql sql查询如何比较两个不同表的列中的值,mysql,sql,Mysql,Sql,陛下 我有两个表tab1和tab2,详情如下 tab1-(名称按Firstname、MiddleName、LastName的顺序排列) 表2-(名称的顺序为Lastname、FirstName、Middlename) 我想得到这样的结果 ------------------------------------ Mobile No. | Name ------------------------------------ 987654323 | Rah
------------------------------------
Mobile No. | Name
------------------------------------
987654323 | Rahul Ajay Patil
------------------------------------
987654543 | Vishesh Ranjit Sahu
------------------------------------
请帮助。也许不是最佳解决方案,但它很有效,我希望这就是您试图实现的目标:
SELECT * FROM tab1 t1 WHERE EXISTS (
SELECT * FROM tab2 t2
WHERE t2.Name =
CONCAT(
SUBSTRING_INDEX(t1.Name, ' ', -1),
' ',
SUBSTRING_INDEX(t1.Name, ' ', 2)
)
);
SQL fiddle:
嗯,您需要的一切都在您的
选项卡1中,是吗?我看不需要tab2
。这是非常基本的,到目前为止您尝试了什么?再次阅读问题,似乎他想要tab1中的行,如果tab2中存在名称,但名称不相同。尊敬的Sirs,我的应用程序数据库中有人的姓名,格式为(Lastname Firstname Middlename),第三方数据库的名称为(格式为Firstname Middlename Lastname)和与我的应用程序数据库匹配的某个人的号码。我需要获取两个数据库中姓名匹配的人的姓名和号码。请帮助。
------------------------------------
Mobile No. | Name
------------------------------------
987654323 | Rahul Ajay Patil
------------------------------------
987654543 | Vishesh Ranjit Sahu
------------------------------------
SELECT * FROM tab1 t1 WHERE EXISTS (
SELECT * FROM tab2 t2
WHERE t2.Name =
CONCAT(
SUBSTRING_INDEX(t1.Name, ' ', -1),
' ',
SUBSTRING_INDEX(t1.Name, ' ', 2)
)
);