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
10 个月之前 回复
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 年轻人复制的时候改变点东西嘛
10 个月之前 回复
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
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
mysql查询语句 和 多表关联查询 以及 子查询
mysql(三):mysql查询语句 和 多表关联查询 以及 子查询 1.查询一张表:     select * from 表名; 2.查询指定字段:select 字段1,字段2,字段3….from 表名; 3.where条件查询:select 字段1,字段2,字段3 frome 表名 where 条件表达式;例:select * from t_
MySQL多表关联查询+子查询_R
MySQL多表关联查询+子查询 -- **************关联查询(多表查询)****************-- 多表查询规则:1)确定查询哪些表。 2)确定哪些字段。 3)表与表之间连接关系(规律:连接条件数量=表数量-1)。-- ***1.交叉连接查询(笛卡尔乘积,查询条数=表1数据条数*表2数据条数。基本不会用)=cross joinSELECT empName AS '姓名
mysql数据库多表查询练习题
下面练习题中设计四个表。分别为:dept表emp表salgrade表tbyear表1. 查出至少有一个员工的部门。显示部门编号、部门名称、部门位置、部门人数。SELECT d.deptno,d.dname,d.loc,e1.`count(*)` FROM dept d INNER JOIN (SELECT deptno,COUNT(*) FROM emp GROUP BY deptno) e1 O...
MySQL优化系列(二)--查找优化(2)(外连接、多表联合查询以及查询注意点)
继续这一系列,上篇的简单查询优化并没讲完,第二点还有查询注意点以及多表查询优化呢!! 文章结构:(1)多表查询步步优化;(2)查询编写的注意点。 主要是内连接,外连接,交叉连接的详解(配图)。以及罗列出,在项目中,一些写sql的注意点。
mysql数据库中多表关联查询的实例
1.对于商店表,货物表,存在一对多的关系,即一个商店可以售卖多种货物。 查找:对数据库中所有商店表按所售卖货物的种类多少进行排序输出。 数据库中表格式: sql语句: select a.shop_id,a.shop_name from shop a left join goods b on a.shop_id=b.shop_id group by a.shop_id order by c
MySQL多表关联查询
SQL 连接(JOIN) 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段。连接的结果可以在逻辑上看作是由SELECT语句指定的列组成的新表。左连接与右连接的左右指的是以两张表中的哪一张为基准,它们都是外连接。外连接就好像是为非基准表添加了一行全为空值的万能行,用来与基准表中找不到匹配的行进行匹配。假设两个没有空值的表进行左连接,左表是基准表,左表的所有行都出现在结果中,右表则可能
MySQL SQL多表关联查询最佳实例
Mysql学习中 ,单表查询每个人都很容易掌握;但是多表之间的关联查询对于初学者是很难掌握的,以下是我学习中,结合老师所讲例子作的总结,主要就是三张表的关联查询。还包括group by操作。Join on;left join on;group by。
MySQL联合查询分页
有两个表table_A, table_B:pro: id pro_name creator_id create_time 1 pro1 101 2017-5-1 2 pro2 103 2017-3-1 3 pro3 103 2017-2-3 4 pro6 116 2017-6-3 pro_users: id pro
HQL语句多表联合查询,Mysql不设置外键关系
如有表A,表B,表C A表包含B表的key,A表包含C表的key。如果我们想用HQL语句查询A表时带出A表所有属性和B表的所有属性和C表的所有属性,HQL语句可按一下方法写。 @NamedQuery(name="getOrderByUserid",query="From A a,B b,C c where a.user_id=b.user_id and a.constantly_id=c.co
mysql联合查询分析及优化
最近在做报表,跟数据库打交道的比较多,所以特意来总结一下mysql的联合查询; 查询常用的字句     where(条件查询)、having(筛选)、group by(分组)、order by(排序)、limit(分页)、USING(取交集) 1、where常用运算符: 一般跟在from后面,通常会和条件运算符到一起使用           比较运算符