Oracle左連表查詢案例

2022-09-14 23:12:23 字數 1255 閱讀 1000

場景:有兩張表,一張異常資訊表,一張異常處理資訊表,根據使用者名稱查詢該使用者可以看到的異常資訊,同時還要連表查詢異常資訊表裡的改進方案和備註資料;

sql1:

select b.*,h.*from usm_exception_bill b 

left join usm_exception_handling h on b.code=h.code

where b.is_delete=0 and b.is_active=0and h.is_delete=0 and h.is_active=0and b.username='admin';

描述:上面情況只會查詢出usm_exception_bill表和usm_exception_handling表都滿足條件的表,但是當usm_exception_handling表沒有usm_exception_bill表的處理資訊時,只會

查詢出usm_exception_bill和usm_exception_handling都有的資料,那麼在處理表沒有處理資訊的異常資料就不會被查詢出來,客戶看到的資料就是不完整的;

sql2:

select b.*, h.*from usm_execption_bill 

left join usm_exception_handling h on h.code=b.code

and b.is_delete=0 and b.is_active=0and h.is_delete=0 and h.is_active=0and b.username='admin';

描述:這樣可以查詢出usm_exception_bill表和usm_exception_handling表有關聯的全部資料,但是條件就不生效了,成了擺設;

sql3:

select b.*, h.*from 

(select *from usm_exception_bill

where is_delete=0 and is_active=0 and b.username='admin') b

left join usm_exception_handling h on b.code =h.code

and b.is_delete=0 and b.is_active=0and h.is_delete=0 and h.is_active=0;

描述:先去usm_exception_bill表把滿足條件的資料查詢出來,在去usm_exception_handling表匹配出相應的處理資訊,這樣既不會資料顯示不全,也不會過濾條件失效;

ORACLE 各種連表方式查詢

話不多說直入正題 select from a join b on a.id b.id sql語法表的內連線方式 select from a left join b on a.id b.id sql語法表的左外連線方式 以左表為主表的右表為輔表,查詢主表的全部字段 select from a righ...

mysql的連表查詢 MySQL 連表查詢

連表查詢 連表查詢通常分為內連線和外連線。內連線就是使用inner join進行連表查詢 而外連線又分為三種連線方式,分別是左連線 left join 右連線 right join 全連線 full join 下來我們一起來看一下這幾種連線方式的區別及基礎用法。內連線inner join inner...

oracle 資料庫的 左連 和 右連

a 資訊表 裡面有計畫表id b 計畫表 現在要查詢關聯的id的字段 並且 資訊表沒有 計畫id的資料 用到這個左 因為 資訊表在左 就可以查詢出來 select a.from yt tdkb xxlr a left join yt tdkb jhb b on a.fxxjhsjid b.fid 如...