0

我有两个名为 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 则显示用户名和用户地址作为输出

什么是查询..?

4

5 回答 5

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
于 2012-06-18T11:24:24.253 回答
0
SELECT u.username, u.useraddress 
FROM USERS u INNER JOIN EMP e
 ON u.userid = e.empid;
于 2012-06-18T11:24:57.780 回答
0

您还可以在 MySQL 中使用如下查询:

SELECT USERS.username, EMP.useraddress FROM USERS,EMP WHERE EMP.id=USERS.userid
于 2012-06-18T11:27:40.287 回答
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
于 2012-06-18T11:23:14.360 回答
0

使用内连接查询绑定两个表

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

但它会显示所有记录。并且可以将这些查询与用户 ID 上的用户的左连接或 empid 上的 emp 右连接连接起来

于 2012-06-18T11:37:48.440 回答