从两个表中选择DISTINCT值并比较这两个表

时间:2012-06-18 11:18:46

标签: mysql

我有两个名为USERS和EMP的表。

 USERS
-------

userid | username | useraddress
--------------------------------
   1   | U1       | ADD1 
   2   | U2       | ADD2 
   3   | U3       | ADD3
   4   | U4       | ADD4

  EMP
-------

empid | empname 
-----------------
 1    | emp1
 2    | emp2
 3    | emp3

这些是我想要看到的表格

如果empid = userid,则显示用户名和useraddress作为输出

对此的查询是什么??

5 个答案:

答案 0 :(得分:0)

试试这个:

select u.username, u.useraddress
from EMP e
inner join USERS u
on e.empid = u.userid

但您可能想要显示所有员工,无论他们是否是用户,那么您需要左连接:

select u.username, u.useraddress
from EMP e
left join USERS u
on e.empid = u.userid

您可以通过执行以下操作隐藏非匹配的员工将显示NULL的事实:

select IFNULL(u.username, 'N/A'), IFNULL(u.useraddress, 'N/A')
from EMP e
left join USERS u
on e.empid = u.userid

答案 1 :(得分:0)

select case when e.empid = u.userid 
            then concat(username, ' ', useraddress)
            else empname
       end as name
from users u
full outer join emp e on e.empid = u.userid

答案 2 :(得分:0)

SELECT u.username, u.useraddress 
FROM USERS u INNER JOIN EMP e
 ON u.userid = e.empid;

答案 3 :(得分:0)

你也可以在MySQL中使用如下查询:

SELECT USERS.username, EMP.useraddress FROM USERS,EMP WHERE EMP.id=USERS.userid

答案 4 :(得分:0)

使用内部联接查询绑定两个表

select username as 'User Name',useraddress as 'User Address'
from USERS INNER JOIN EMP
on USERS.userid = EMP.empid;

但是它会显示所有记录。并且可以在userid上为用户加入这些查询,在empid上为emp加入右加入

相关问题