日期:2014-05-17  浏览次数:20749 次

求一条SQL语句
表名[会话]
----------------
ID 自动编号
发送者 varchar(20)
接收者 varchar(20)
新消息 int

表名[用户]
----------------
ID 自动编号
用户名 varchar(20)
昵称 nvarchar(20)
个性签名 nvarchar(200)

说明:[会话]表的发送者和接收者就是[用户]表的不同用户的用户名

要求:建立一条联合查询语句,查询结果能够显示以下信息

会话.ID,会话.发送者,发送者.昵称,发送者.个性签名,会话.接收者,接收者.昵称,接收者.个性签名

------解决方案--------------------
用join left语句
------解决方案--------------------
select 
a.id as 会话ID,
a.发送者 as 会话发送者,
b.昵称 as 发送者昵称,
b.个性签名 as 发送者个性签名,
a.接收者 as 会话接收者,
c.昵称 as 接收者昵称,
c.个性签名 as 接收者个性签名
from 会话 a 
left join 用户 b 
on a.发送者=b.用户名 
left join 用户 c 
on a.接收者=c.用户名
------解决方案--------------------
2楼的可以。 但是楼主的会话表为啥不存储发送人和接受人的 用户id? 如果用户名有重复不是有问题么(会关联出多条记录)?