关于MYSQL问题 慢查优化方面的 10
selectifnull(avg(bsvalue),0)asvalue,1astypefromAastLEFTJOIN(selectpatientidfrombwhere...
select ifnull(avg(bsvalue),0) as value,1 as type from A as t LEFT JOIN(select patientid from b where id = 'M001') as aaa ON aaa.pid = t.pidwhere date(adddate) >= '2015-04-21' and date(adddate) <= '2015-04-24' and (t.pid in aaa.pid) union all 这个语句是报错的 如果把(t.pid in aaa.pid) 里面的in 换成为 = 就不报错 但是数据不知道是不是正确的// select patientid from b where id = 'M001' 查询出来的是多个数据现在问的是如何让 = 还是换成in 如何不报错正确的显示结果
展开
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏10(财富值+成长值)
2015-05-21
展开全部
看了一下你的这个SQL,里面的逻辑应该是有一些问题,如下:
select ifnull(avg(bsvalue), 0) as value, 1 as type
from A as t
LEFT JOIN (select patientid from b where id = 'M001') as aaa
ON aaa.pid = t.pid // (1)
where date(adddate) >= '2015-04-21'
and date(adddate) <= '2015-04-24'
and (t.pid in aaa.pid) // (2)
SQL语句里面,(1)处和(2)处是重复的,也就是(2)处 这个条件可以去掉的
追问
能给个联系方式吗
追答
2五229八746
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询