当前位置: 首页 > 知识库问答 >
问题:

如何在表和列相同的情况下在一行中获得两个不同的值

司空瑾瑜
2023-03-14

我试图让发送消息给另一方的用户和接收消息的用户在每行的一行中。

UserTable
==================================
userId    userName
-------   ---------
23         Name1
24         Name2
25         Name3

Message Table
==================================================
msgId      senderId       reciverId      messsage
-------    ----------     ----------     -------------
2          24             25              blah
3          25             24              ohh really blah
4          23             24              lets do blah



Output I need

msgId      sender       receiver         message
--------   -------      ----------      ---------
2          Name2         Name3           blah
3          Name3         Name2           Ohh really blah
4          Name1         Name2           lets do blah

那么oracle sql查询应该是什么呢

共有1个答案

颛孙凯定
2023-03-14

只需将用户表连接到消息表两次:

SELECT
    m.msgId,
    u1.userName AS sender,
    u2.userName AS receiver,
    m.message
FROM Message m
INNER JOIN UserTable u1
    ON m.senderId = u1.userId
INNER JOIN UserTable u2
    ON m.reciverId = u2.userId;
 类似资料:
  • 问题内容: 在Python中,我可以找到连接两个列表的唯一方法是,它会修改第一个列表。是否有任何串联函数返回其结果而不修改其参数? 问题答案: 是:。这给出了一个新的列表是的串联和。

  • Hi StackOverFlow成员 reports=表名。 数据库 这是数据库表: 我想 当我运行这段代码时.. 它返回AllTotal

  • 问题内容: 我正在使用以下sql语句对来自两个不同表的两个列中的值求和。该语句可以输出,但不能输出所需的结果。 我的桌子在这里: -- -转储表数据 -- -表格的表格结构 -- -转储表数据 问题答案: 这应该做到这一点:

  • 问题内容: 我在同一行上有两个元素向左浮动和向右浮动。 我需要element2在element1旁边对齐,并在两者之间填充约10个像素。问题在于element2的宽度可以根据内容和浏览器(字体大小等)而变化,因此它并不总是与element1完美对齐(我不能仅仅应用右移边距并将其移到上方)。 我也无法更改标记。 是否有统一的方法将它们排列在一起?我尝试以一定的百分比对边距进行右对齐,对element

  • 问题内容: 如何在不同情况下( 大写 和 小写 )对带有varchar2列的表进行排序? 例如,当我按“名称”列进行排序时,将得到以下结果: 我想要的是这样的: 问题答案: 使用,例如 如果您需要解决非英语语言的特殊字符,则可能需要有关NLSSORT的其他答案。如果您不这样做,我会尝试和KISS一起使用,因为它很容易记住和使用,并被他人阅读(可维护性)。

  • rbindlist做的正是我需要的,但'do.call'做不到! do.Call不是我想要的