如何通过关联表查询指定user_receiver对应的user_sender数据
实现方法
你可以直接通过WHERE子句过滤relationships表的user_receiver字段即可实现需求:
1. 仅返回发送者ID、接收者ID(匹配你给出的期望输出格式)
SELECT user_sender, user_receiver FROM relationships WHERE user_receiver = 2;
执行后输出结果和你预期完全一致:
| user_sender | user_receiver |
|---|---|
| 1 | 2 |
| 3 | 2 |
2. 额外返回发送者姓名(更直观的使用场景)
如果需要同时展示发送者的全名,可以关联users表查询:
SELECT r.user_sender, u.Full_name AS sender_full_name, r.user_receiver FROM relationships r INNER JOIN users u ON r.user_sender = u.user_ID WHERE r.user_receiver = 2;
执行后输出结果如下:
| user_sender | sender_full_name | user_receiver |
|---|---|---|
| 1 | Steve Jobs | 2 |
| 3 | Elon Musk | 2 |
扩展:直接通过接收者姓名查询(无需提前知道ID)
如果你不想提前查询接收者的user_ID,也可以通过子查询直接用姓名作为筛选条件:
SELECT user_sender, user_receiver FROM relationships WHERE user_receiver = ( SELECT user_ID FROM users WHERE Full_name = 'Bill Gates' );
内容的提问来源于stack exchange,提问作者user14508310
相关产品推荐
相关产品推荐

