繁体   English   中英

查询逻辑最佳方法

[英]Query Logic best approach

我需要通过我的两个查询获得的数据以及来自行驶表的任何其他数据。 我正在使用以下代码,但是感觉我的结果是错误的。

select * from(
select * from tbl_a a  
inner join tbl_b b on (a.id = b.id and a.col_a = b.col_b and a.col_c = '1')

union all

select * from tbl_a a  
inner join tbl_b b on (a.col_a = b.col_b and a.col_c = '1')
where (1=1)
and a.id <> b.id
and a.start_time <= b.u_start_time
and a.end_time >= b.u_end_time

union all

select * from tbl_a a  
where a.another_id 
NOT IN ( -- either query above)

) results;  

我只想知道这是否有意义,或者我如何可以简化其中的一些...

这是查询前两个联合的条件,目前尚不清楚第三个联合条件是什么

SELECT * 
FROM
tbl_a a 
left join tbl_b b on b.id = a.id and b.col_b = a.col_a
left join tbl_b b1 on a.col_a= b1.col_b and a.id<>b1.id and a.start_time<=b1.u_start_time and a.end_time>=b1.u_end_time
WHERE
a.col_c=1
and COALESCE(b.id,b1.id) is not null

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM