2 weixin 39318862 weixin_39318862 于 2017.09.18 11:31 提问

mysql多表关联查询, 求大神解答

任务表字段task :主键id, 任务详情taskdetail, 外键oid, 外键eid, 外键did1, 外键did2
订单表字段orders : 主键id, 订单名称name
员工表字段emp : 主键id, 员工姓名empname
部门表字段dept : 主键id, 部门名称name

其中任务表, 四个外键(oid,eid,did1,did2)关联三张表(orders,emp,dept)

需求: 查询任务详情, 订单名称, 员工姓名, 任务实施部门名称, 协助部门名称

查询语句怎么写?

6个回答

devmiao
devmiao   Ds   Rxr 2017.09.18 11:42
cjws555
cjws555 不错的blog
2 个月之前 回复
m0_38093650
m0_38093650   2017.09.18 11:46

select taskdetail,name,empname,name from task t,orders o,emp e,dept d where t.oid = o.id and t.eid = e.id and t.did1 = d.id and t.id = 主表ID

qq_35824035
qq_35824035   2017.09.18 13:17

left join关联起来咯

qq_35651737
qq_35651737   2017.09.18 13:55

select taskdetail,name,empname,name from task t,orders o,emp e,dept d where t.oid = o.id and t.eid = e.id and t.did1 = d.id and t.id = 主表ID

m0_38093650
m0_38093650 年轻人复制的时候改变点东西嘛
2 个月之前 回复
m0_37462976
m0_37462976   2017.09.18 14:18

select r.taskdetail , m.name, t.empname, q.name from task r left join orders m
where r.id = m.id
left join emp t
where t.id = r.id
left join dept q
where q.id = r.id

qq1340976576
qq1340976576   2017.09.18 14:40

select t.taskdetail,o.name,e.empname,d.name from task t
inner join orders o on t.oid = o.id
inner join emp e on t.eid = e.id
inner join dept d on t.did1 = d.id

Csdn user default icon
上传中...
上传图片
插入图片