mysql多表查询

问题描述

现在有两个表 a,b

a表数据有 team,master,slave,time(团队,成员1,成员2,时间)
b表数据有 team,user,code(团队,成员,代号)

其中a表成员1,成员2与b表中user对应

相关代码

select a.team,a.master, a.time,b.code as master_code from a, b where  a .time like '2019-07-31' and a.master = b.user;
select a.team,a.slave, a.time,b.code as slave_code from a, b where  a .time like '2019-07-31' and a.slave= b.user;

结果是:

team master master_code time
cs 小明 00001 2019-07-31
team slave slave_code time
cs 大明 00002 2019-07-31

你期待的结果是什么?实际看到的错误信息又是什么?

现在我想把这两个sql结果合并成一个

team slave slave_code master master_code time
cs 大明 00002 小明 00001 2019-07-31
阅读 2k
2 个回答

分析SQL所得:

1.a表中有user,需要获取对应的time,master/slave
2.b表中有user,需要获取对应的code
3.表联接的条件为user相等
4.最终结果将筛选时间在'2019-07-31'这一天的

故得出以下SQL:

select a.team,a.master, a.time,b1.code as master_code,a.slave, b2.code as slave_code from a LEFT JOIN b1 ON a.master = b1.user LEFT JOIN b2 on a.slave = b2.user where a .time like '2019-07-31'
SELECT * FROM a left join b on a.master=b.user left join b c on a.slave=c.user
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题