关于mysql多表关联查询的问题

老王就是我 2021-04-22 10:22:20
假设有一张表,结构为


create table user_info{
id int primary key,
name varchar(20)
}

create table order_info{
id int primary key,
order_user_id int,
examine_user_id int
}

user_info是用户表,order_info通过order_user_id 、examine_user_id 关联用户表,现在我的需求是,只查询一次user_info,要分别查询出order_user_id和examine_user_id 所对应的用户名
类似


select

from
user_info user_info ,order_info order_info

请问sql要怎么写?
...全文
299 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
chengangcsdn 2021-04-23
  • 打赏
  • 举报
回复
得关联两次啊。

select a.order_user_id,b.name as order_user_name,a.examine_user_id ,c.name as examine_user_name  from  order_info a
left join  user_info b on a.order_user_id = b.id
left join  user_info c on a.examine_user_id = b.id
老王就是我 2021-04-23
  • 打赏
  • 举报
回复
引用 3 楼 chengangcsdn 的回复:
得关联两次啊。

select a.order_user_id,b.name as order_user_name,a.examine_user_id ,c.name as examine_user_name  from  order_info a
left join  user_info b on a.order_user_id = b.id
left join  user_info c on a.examine_user_id = b.id
嗯,那有没有算法,只需要关联一次就能查询出来的呢
老王就是我 2021-04-22
  • 打赏
  • 举报
回复
引用 1 楼 海绵宝宝L 的回复:
SELECT * FROM `jssb_user` u LEFT JOIN `jssb_subscribe_order` o ON u.id=o.user_id LEFT JOIN `jssb_subscribe_order` a ON u.id=a.caddie_id WHERE o.aid=2 换下你对应的数据库和条件 jssb_user=user_info jssb_subscribe_order=order_info
如果order_user_id和examine_user_id要分别显示,也就是查找出两个用户名的列。
吃橘子的汤圆 2021-04-22
  • 打赏
  • 举报
回复
SELECT * FROM `jssb_user` u LEFT JOIN `jssb_subscribe_order` o ON u.id=o.user_id LEFT JOIN `jssb_subscribe_order` a ON u.id=a.caddie_id WHERE o.aid=2 换下你对应的数据库和条件 jssb_user=user_info jssb_subscribe_order=order_info

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧