仅当一个表中的列值与使用MySQL的另一个表相同时,如何从两个表返回数据?

Ara*_*nyx 1 mysql sql

我是MySQL的新手,只有当两个表中的手机号码相同时,我才想从两个表中返回数据.我不想要任何null价值观.我怎样才能做到这一点?

例:

Table A 
UserID  CandidateName  CurrentMobile  CurrentDistrict  Email      Centre 
1       Max            98234          Chennai          aaa@a.com  A
2       Raju           97364          Salem            bbb@b.com  B
3       Ramesh         99873          Trichy           ccc@c.com  C 
Run Code Online (Sandbox Code Playgroud)
Table B
Name     MobileNumber  District
Maximus  98234         Salem 
Ramesh   99873         Trichy
Venkat   98376         Chennai 
Run Code Online (Sandbox Code Playgroud)

我想要以下结果:

UserID  CandidateName  Name     CurrentDistrict  District  Email      Centre  MobileNumber 
1       Max            Maximus  Chennai          Salem     aaa@a.com  A       98234
3       Ramesh         Ramesh   Trichy           Trichy    ccc@c.com  C       99873 
Run Code Online (Sandbox Code Playgroud)

我尝试使用UNION,但它null在某些列中提供值,并返回两个表中的所有数据.

And*_*ers 5

您希望加入这两个表,条件A.CurrentMobileB.MobileNumber:

SELECT
  A.UserID,
  A.CandidateName,
  B.Name,
  A.CurrentDistrict,
  B.District,
  A.Email,
  A.Centre,
  B.MobileNumber
FROM
  A,
  B
WHERE
  A.CurrentMobile = B.MobileNumber
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用此语法获得相同的结果:

SELECT
  ... (all the same fields again)
FROM
  A
INNER JOIN B ON A.CurrentMobile = B.MobileNumber
Run Code Online (Sandbox Code Playgroud)

如果您在用于连接的两个字段(即移动号码字段)上有索引,则查询会快得多.阅读有关此处此处的联接的更多信息.