MySql連表查詢,一對多,按照條件取一對一

2021-09-06 21:49:08 字數 734 閱讀 8469

現在有乙個需求,就是在原有商品引數的基礎上,增加乙個使用者的支付狀態。

然而使用者的支付狀態在訂單表裡面,而且老版本的資料當中,乙個人存在多個訂單。

也就是說,乙個商品可能同時對應支付和未支付兩個支付狀態,如果使用者支付了,當然只能已支付的狀態

so...

select 

ins.total_score,pay.pay_status,date_format(ins.inspect_date,'%y-%m-%d %h:%i:%s')

from ins_base ins

inner join (

select max(pay_status) pay_status,inspect_code inspect_code

from indent

group by inspect_code

) pay

on ins.report_code = pay.inspect_code

where ins.customer_id = 196

order by ins.inspect_date desc

limit 0,2

ins_base(商品表)、indent(訂單表)

我在商品表與訂單錶連表的同時,對訂單表進行了子查詢處理,因為在這個業務裡規定,未支付為1,支付為2。

所以我對訂單表進行了分組,同時對需要的支付狀態字段(pay_status)取最大值。

如上...

mysql join 一對多 Join 一對多連線

資料庫常見的join方式有三種 inner join,left outter join,right outter join 還有一種full join,因不常用,本文不討論 這三種連線方式都是將兩個以上的表通過on條件語句,拼成乙個大表。以下是它們的共同點 1.關於左右表的概念。左表指的是在sql語...

一對多查詢

最終會將訂單資訊對映到 orders 中,訂單所對應的訂單明細對映到 orders 中的 orderdetail 屬性中。每個 orders 中的 orderdetail 屬性儲存了該訂單所對應的訂單明細。select orders.user.username user.user.birthday ...

一對多查詢

案例 查詢所有使用者資訊及使用者關聯的訂單資訊。使用者資訊和訂單資訊為一對多關係。sql語句 select u.id,u.username,u.birthday,u.u.address,o.id oid,o.number,o.createtime,o.note from user u left jo...