oracle数据库 怎样将查询出来的结果作为另一个查询的条件
例如:
将select distinct substr(filter,4) from t_Wage_Status
where companyid = '43f00833-586d-4f53-81c7-1e10f528ca9c'
and year = 2012 and month = 10 (A)
查出来的结果作为select * from t_wage_personnel (B)的条件
问题:
select * from t_wage_personnel
where
(
select distinct substr(filter,4) from t_Wage_Status
where companyid = '43f00833-586d-4f53-81c7-1e10f528ca9c'
and year = 2012 and month = 10
)
为什么不行?求解
补充:A查询出来的结果是
CompanyID='43f00833-586d-4f53-81c7-1e10f528ca9c' AND EMPLOYEETYPE='1' 这样的
------最佳解决方案-------------------- 你试试这样
select * from t_wage_personnel
where
(
select distinct substr(filter,4) from t_Wage_Status
where companyid = '43f00833-586d-4f53-81c7-1e10f528ca9c'
and year = 2012 and month = 10
) ------其他解决方案-------------------- (A)
(B)
两个结果集要有可以关联的字段才可以的 ------其他解决方案-------------------- B的查询结果是A的查询条件,这样也需要关联吗?
------其他解决方案-------------------- ' and 1' = '1'
------其他解决方案-------------------- 为什么要加上 ------其他解决方案-------------------- ' and 1' = '1' 这个呀 ------其他解决方案-------------------- 我试了下,运行的时候不报错了,但查不到数据,我直接将
select distinct substr(filter,4) from t_Wage_Status where companyid = '43f00833-586d-4f53-81c7-1e10f528ca9c' and year = 2012 and month = 10 查出来的结果
CompanyID='43f00833-586d-4f53-81c7-1e10f528ca9c' AND EMPLOYEETYPE='1' AND TYPE<>'8'
放到where的后面是可以查到数据的 ------其他解决方案-------------------- 额。。。那就没办法了。因为你A表查询出来的是字符串,无法成为B表的查询条件。。
原本是想拼接字符串,貌似拼接后不抱错但查不出来数据。。。 ------其他解决方案-------------------- 我把=号改为!=号,就所有的数据都出来了,所以是不是 ------其他解决方案-------------------- ' and 1' = '1' 这里出了问题
------其他解决方案-------------------- ' and 1' = '1'可不可以理解为1等于"1",因为不等,所以没数据呀 ------其他解决方案--------------------