首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Oracle 多表關聯查詢:使用 LEFT JOIN 整合充值與消費記錄

     編輯:程式設計綜合問答

需求:充值表 t_recharge、消費表 t_consume,可能單邊缺失,缺失顯示 0。

SELECT r.userId,
       NVL(r.recharge_money, 0) recharge_money,
       NVL(r.recharge_count, 0) recharge_count,
       NVL(c.consume_money, 0) consume_money,
       NVL(c.consume_count, 0) consume_count
FROM t_recharge r
LEFT JOIN t_consume c ON r.userId = c.userId
UNION
SELECT c.userId,
       NVL(r.recharge_money, 0), NVL(r.recharge_count, 0),
       NVL(c.consume_money, 0), NVL(c.consume_count, 0)
FROM t_consume c
LEFT JOIN t_recharge r ON c.userId = r.userId
WHERE r.userId IS NULL;

UNION 確保僅存在消費記錄的用戶也被包含。或使用 FULL OUTER JOIN (Oracle 支援)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved