这三个mysql查询语句能不能合并成一句sql语句???

时间:2021-03-20 15:14:55
select id from engine_project a where a.project_name = #{projectName}

select wip from engine_machine a inner join engine_project b where b.id = a.project_id 

select b.wip,b.create_date,b.type,b.id,b.acc,a.machine_name,a.machine_no,a.brand from engine_machine a inner join engine_location b where a.wip = b.wip and  DATE_FORMAT(b.create_date,'%Y-%m-%d') > '2016-08-14' 

8 个解决方案

#1



没看明白,为什么要把3个语句合并成1个

#2


可以并成一个

#3


引用 1 楼 yupeigu 的回复:
没看明白,为什么要把3个语句合并成1个

因为一条sql语句会简单很多,减少很多代码。。

#4


引用 2 楼 shoppo0505 的回复:
可以并成一个

我也觉得可以,但是大概怎么合并呢? 这三个mysql查询语句能不能合并成一句sql语句???

#5


引用 3 楼 huang7511389 的回复:
Quote: 引用 1 楼 yupeigu 的回复:


没看明白,为什么要把3个语句合并成1个

因为一条sql语句会简单很多,减少很多代码。。


但是第一个是单表,其他2个都是多表join的,数据肯定就不一样了,一对多会导致数据重复,所以不好合并。

建议,还是用简单的语句来实现,就算合并成功了,也会导致语句变慢的。 这三个mysql查询语句能不能合并成一句sql语句???

#6


引用 5 楼 yupeigu 的回复:
Quote: 引用 3 楼 huang7511389 的回复:

Quote: 引用 1 楼 yupeigu 的回复:


没看明白,为什么要把3个语句合并成1个

因为一条sql语句会简单很多,减少很多代码。。


但是第一个是单表,其他2个都是多表join的,数据肯定就不一样了,一对多会导致数据重复,所以不好合并。

建议,还是用简单的语句来实现,就算合并成功了,也会导致语句变慢的。 这三个mysql查询语句能不能合并成一句sql语句???

原来如此,好的,我知道了 这三个mysql查询语句能不能合并成一句sql语句???

#7


未测试

select a.id,b.wip,c.create_date,c.type,c.id,c.acc,b.machine_name,b.machine_no,b.brand 
from engine_project a 
inner join engine_machine b  on  a.id = b.project_id
inner join engine_location c on  c.wip = b.wip
where a.project_name = @projectName and  DATE_FORMAT(c.create_date,'%Y-%m-%d') > '2016-08-14' 

#8


引用 7 楼 ch21st 的回复:
未测试

select a.id,b.wip,c.create_date,c.type,c.id,c.acc,b.machine_name,b.machine_no,b.brand 
from engine_project a 
inner join engine_machine b  on  a.id = b.project_id
inner join engine_location c on  c.wip = b.wip
where a.project_name = @projectName and  DATE_FORMAT(c.create_date,'%Y-%m-%d') > '2016-08-14' 


谢谢~
我本来是这么写的,但是数据好像有错,然后我只好分开三句写了。就多了一些代码。

#1



没看明白,为什么要把3个语句合并成1个

#2


可以并成一个

#3


引用 1 楼 yupeigu 的回复:
没看明白,为什么要把3个语句合并成1个

因为一条sql语句会简单很多,减少很多代码。。

#4


引用 2 楼 shoppo0505 的回复:
可以并成一个

我也觉得可以,但是大概怎么合并呢? 这三个mysql查询语句能不能合并成一句sql语句???

#5


引用 3 楼 huang7511389 的回复:
Quote: 引用 1 楼 yupeigu 的回复:


没看明白,为什么要把3个语句合并成1个

因为一条sql语句会简单很多,减少很多代码。。


但是第一个是单表,其他2个都是多表join的,数据肯定就不一样了,一对多会导致数据重复,所以不好合并。

建议,还是用简单的语句来实现,就算合并成功了,也会导致语句变慢的。 这三个mysql查询语句能不能合并成一句sql语句???

#6


引用 5 楼 yupeigu 的回复:
Quote: 引用 3 楼 huang7511389 的回复:

Quote: 引用 1 楼 yupeigu 的回复:


没看明白,为什么要把3个语句合并成1个

因为一条sql语句会简单很多,减少很多代码。。


但是第一个是单表,其他2个都是多表join的,数据肯定就不一样了,一对多会导致数据重复,所以不好合并。

建议,还是用简单的语句来实现,就算合并成功了,也会导致语句变慢的。 这三个mysql查询语句能不能合并成一句sql语句???

原来如此,好的,我知道了 这三个mysql查询语句能不能合并成一句sql语句???

#7


未测试

select a.id,b.wip,c.create_date,c.type,c.id,c.acc,b.machine_name,b.machine_no,b.brand 
from engine_project a 
inner join engine_machine b  on  a.id = b.project_id
inner join engine_location c on  c.wip = b.wip
where a.project_name = @projectName and  DATE_FORMAT(c.create_date,'%Y-%m-%d') > '2016-08-14' 

#8


引用 7 楼 ch21st 的回复:
未测试

select a.id,b.wip,c.create_date,c.type,c.id,c.acc,b.machine_name,b.machine_no,b.brand 
from engine_project a 
inner join engine_machine b  on  a.id = b.project_id
inner join engine_location c on  c.wip = b.wip
where a.project_name = @projectName and  DATE_FORMAT(c.create_date,'%Y-%m-%d') > '2016-08-14' 


谢谢~
我本来是这么写的,但是数据好像有错,然后我只好分开三句写了。就多了一些代码。