Mysql sql查询如何比较两个不同表的列中的值

Mysql sql查询如何比较两个不同表的列中的值,mysql,sql,Mysql,Sql,陛下 我有两个表tab1和tab2,详情如下 tab1-(名称按Firstname、MiddleName、LastName的顺序排列) 表2-(名称的顺序为Lastname、FirstName、Middlename) 我想得到这样的结果 ------------------------------------ Mobile No. | Name ------------------------------------ 987654323 | Rah

陛下

我有两个表tab1和tab2,详情如下

tab1-(名称按Firstname、MiddleName、LastName的顺序排列)

表2-(名称的顺序为Lastname、FirstName、Middlename)

我想得到这样的结果

------------------------------------
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)
  )
);