表user                           表message
user_ID   用户ID                 mess_ID         消息编号
user_name 用户昵称               mess_senderID   发送者ID
                                 mess_receiverID 接收者ID
                                 mess_content    消息内容
我要设计一个聊天软件的聊天记录数据库
有两个表 一个用户表  一个消息表 如上
在消息表里存入接收者发送者的ID,但是读取出来的要是用户表里对应ID的昵称
而且要把发送者和接收者的昵称在一次数据库连接中一起读出来,而不是先读出了ID再到用户表里读昵称
应该怎么设计表间关系,select语句又该怎么写
谢谢了

解决方案 »

  1.   

    select mess_id,mess_content,a.user_name as 接,b.user_name as 发 
    from user as a,user as b ,message
    where a.user_id=b.user_id and a.user_id=mess_mess_receiverID and b.user_id=mess_senderID
      

  2.   

    a.user_ID = b.user_ID 
    这个不知道是什么意思 加了不就成了接收人等于发送人了吗?
    不过去掉了就达到了我要的效果
    真是谢谢你的帮助 我是新手,都还不懂 呵呵
      

  3.   

    表user(user_ID,user_name)
    表message(mess_ID,mess_senderID,mess_receiverID,mess_content)查询时,使用如下:select B.mess_id,A.user_name,mess_receiverID,mess_content
    from message A,User B 
    where User A.mess_senderID=B.userID
      

  4.   

    这个不知道是什么意思 加了不就成了接收人等于发送人了吗?
    ------------------------------------------------------------------------------你的接收人,和发送人信息,都是放在一张表里面的吗?USer表?