SELECT count(distinct UP_ID)
from rel_table
where ((DOWN_TYPE = 'PH') OR (DOWN_TYPE = 'UI'))AND (UP_TYPE = 'LH')AND UP_ID IN
(select LH_ID
from rel_lhfunc_table
where ID
in
(
select ID
from function_table
where name='A1'
)
);其中第4行的UP_ID和第5行的LH_ID是完全一样的同一个东西。
1、我能不能用这样的语句完成嵌套啊?因为以前用的都是名字一样的,现在却不同。2、我试过了和预想的不一样,请问是我逻辑有问题,还是语句有问题啊?
from rel_table
where ((DOWN_TYPE = 'PH') OR (DOWN_TYPE = 'UI'))AND (UP_TYPE = 'LH')AND UP_ID IN
(select LH_ID
from rel_lhfunc_table
where ID
in
(
select ID
from function_table
where name='A1'
)
);其中第4行的UP_ID和第5行的LH_ID是完全一样的同一个东西。
1、我能不能用这样的语句完成嵌套啊?因为以前用的都是名字一样的,现在却不同。2、我试过了和预想的不一样,请问是我逻辑有问题,还是语句有问题啊?
解决方案 »
- 给MySQL多行插入数据时遇到问题
- 请问如何将MYSQL某个字段内容中的数字全部查询出来并替换?
- 为什么指定了InnoDB存储引擎无效,建的还是Myisam存储引擎的表呢?
- 百分求助:在线用户百万级的类似Skype的视频会议系统有哪些好建议?
- 求助:关于Mysql 基准套件的使用
- pconnect和connect到底什么区别啊
- 一般连接池是怎么处理mysql自动回收长时间不用的空闲链接?
- 在access sql中怎么实现mysql的sql语句select * from user where id>1 order by id DESC limit 3,10?????
- linux下wordpress站点mysql_connect() no such file...
- mysql语句where条件中的~是什么意思
- 一个SQL中使用了LEFT函数截取子串,可是字符串是中英文混合的
- mysql更新数据库内容
是第3行的UP_ID和第4行的LH_ID
当然是一样的了,要不然也不可能这样写SQL 呀。
感觉这样写很好,没有语法上的问题。
除非是业务变更了需要修改。
from rel_table a inner join rel_lhfunc_table b on a.UP_ID=b.LH_ID inner join function_table c on b.ID=c.ID and c.name='A1'
where (DOWN_TYPE = 'PH' OR DOWN_TYPE = 'UI') AND UP_TYPE = 'LH';看看这样写如何。