SQL名称而不是ID在多对多关系中

时间:2016-10-13 18:35:56

标签: sql-server ssms

我正在尝试与数据库进行简单的聊天。所以我创建了2个表:

  1. Users(ID(PK),姓名,密码)
  2. Messages(ID(PK),senderID(来自用户的FK),recipientID(来自用户的FK)),文本
  3. 我在SQL中真的是菜鸟,我只是不能编写将返回表Messages但使用普通名称而不是senderID和recipientID的查询。另外,我没有找到1个表使用两次的例子,所以JOIN对我不起作用,或者我以错误的方式使用它。

2 个答案:

答案 0 :(得分:2)

SELECT US.Name as SenderName, UR.Name as RecipientName, M.text
FROM Messages M JOIN Users US ON US.ID = M.senderID
  JOIN Users UR ON UR.ID = M.recipientID

答案 1 :(得分:0)

不确定我是否正确理解您的问题,或者您正在使用哪个数据库,但这是我认为您正在寻找的内容:

SELECT Messages.text, Users.name
FROM Messages 
inner JOIN Users
ON Messages.sender_id = Users.id