資料庫聯表查詢ABC

2021-08-09 05:19:45 字數 1588 閱讀 5511

最近修改商戶後台的bug,把資料庫相關的技術學習了一遍,俺的終極目標是自己編乙個小型的資料庫,廢話說多了~。~

直接上**

case

when ns_plat_res_code.is_custom_reason = '1'

and ns_bill_biz_******.msg_sts = '03'

and ns_bill_biz_******.pmt_tp = '06'

andns_merchant_info.merchant_type = '1'

andns_channel_notice.notice_sts != '23'

then

'04'

else ns_bill_biz_******.msg_sts

end msgsts

翻譯下就是:當 商戶原因欄位為1 且 交易狀態為03 且 支付型別是06 且 商戶型別是1時,將msgsts設為04;否則msgsts不變

這裡只說下leftjoin,其他的可以參考此**猛擊此鏈結

left join 關鍵字從左表(table1)返回所有的行,即使右表(table2)中沒有匹配。如果右表中沒有匹配,則結果為 null。

本質是將原有兩個表的相應字段,組成乙個新錶,對該臨時表做操作。比如:select語句可以從新錶中取出需要的資料。

left join ns_para_bank ns_para_bank on ns_bill_biz_******.cdtr_issr_cd = ns_para_bank.bank_id
這句意思是將左表(ns_para_bank)全部返回,如果右表(ns_bill_biz_******)中的cdtr_issr_cd欄位等於左表(ns_para_bank)的bank_id欄位,則將cdtr_issr_cd字段值返回,否則將cdtr_issr_cd欄位賦值為null,並返回。

--------------------------------------------

表a記錄如下:

aid     anum

1     a20050111

2     a20050112

3     a20050113

表b記錄如下:

bid     bname

1     2006032401

2     2006032402

4     2006032404

--------------------------------------------

1.left join

sql語句如下:

select * from a

left join b

on a.aid = b.bid

結果如下:

aid     anum     bid     bname

1     a20050111    1     2006032401

2     a20050112    2     2006032402

3     a20050113   null    null

(注意:新錶是沒有aid=4的)

重新了解資料庫 聯表查詢和自連線

聯表查詢分為inner join left join right join left join左連線 以左表為主。結果會將左表所有的查詢資訊列出,而右表只列出on後條件與左表滿足的部分。right join左連線 以右表為主。結果會將右表所有的查詢資訊列出,而左表只列出on後條件與右表滿足的部分。查...

關聯表查詢資料庫

1.呼叫方法 this getrelationlist m map,bd prefix.deal as d left join db prefix.user as u on d.user id u.id d.u.site id d.id map指的是查詢條件陣列 2.實現函式 protected f...

mysql查詢資料庫表

使用sql語句查詢mysql指定表字段。可以方便整理資料庫表的說明文件。我在工作中整理了部分sql作為記錄。可以用在以後的mysql文件匯出工具裡。以下為具體內容 使用sql查詢指定資料庫表名和表說明。select table name as tablename,table comment as c...