【问题标题】:Selecting values from second column alongside the values from first column in the same row选择第二列中的值以及同一行中第一列中的值
【发布时间】:2021-11-27 14:20:06
【问题描述】:

我正在尝试获取与第二列中的值匹配的值。例如,我想知道谁是比尔盖茨的发件人,仅使用 ID。

我有两张桌子,

*users* table
| user_ID  | Full_name      |
| -------- | -------------- |
| 1        | Steve Jobs     |
| 2        | Bill Gates     |
| 3        | Elon Musk      |

*relationships* table (with both column foreign keys)
| user_sender  | user_receiver  |
| ------------ | -------------- |
| 1            | 2              |
| 3            | 1              |
| 3            | 2              |

我想根据“user_receiver”列选择“user_sender”列中的匹配值

例如,我想知道 2 的 user_sender 是谁 输出:

|              |                |
| ------------ | -------------- |
| 1            | 2              |
| 3            | 2              |

【问题讨论】:

    标签: mysql sql relationship


    【解决方案1】:

    你需要加入表格并选择你想要的行

    您可以通过使用别名来访问这两个表的所有列

    SELECT u.user_ID  , u.Full_name,r.user_receiver 
     FROM users u JOIN 
    relationships r ON u.user_ID = r.user_sender
    WHERE r.user_receiver = 2
    

    【讨论】:

      【解决方案2】:

      如果您想根据名称查找,则加入与用户的关系。

      SELECT 
        rel.user_sender
      , rel.user_receiver
      -- , sender.Full_name AS sender_name
      -- , receiver.Full_name AS receiver_name
      FROM relationships AS rel
      JOIN users AS sender ON sender.user_ID = rel.user_sender
      JOIN users As receiver ON receiver.user_ID = rel.user_receiver
      WHERE receiver.Full_name = 'Bill Gates' 
      

      如果您已经知道 user_receiver 号码,并且您只想要 ID 的

      SELECT *
      FROM relationships
      WHERE user_receiver = 2
      

      【讨论】:

        猜你喜欢
        • 2015-07-17
        • 1970-01-01
        • 1970-01-01
        • 2022-01-15
        • 2013-09-10
        • 1970-01-01
        • 2015-10-15
        • 2016-11-09
        • 1970-01-01
        相关资源
        最近更新 更多