簡體   English   中英

使用連接查詢(oracle sql)時如何查看一個表中的所有數據並在另一個表上過濾

[英]How to see all data from one table and filtered on another, when using a join query (oracle sql)

一旦我執行拆分,我希望看到以下 3 件事:

  1. 來自 CUSTOMERS 的客戶記錄
  2. TRANSACTIONS 中的所有客戶交易行
  3. 在 PURCHASES 的交易 5 和 6 期間購買的物品

除了第 2 點之外,我在下面的查詢獲得了大部分權利,因為它只返回事務 5 和 6 而不是完整列表。 我能改變什么?

SELECT * FROM customers c
INNER JOIN transactions t ON c.custid = t.custid
INNER JOIN purchaces p ON t.transid = p.transid
WHERE c.customer = 1234 AND t.trans_num IN (5,6)
ORDER BY t.trans_num

您在 where 語句中明確過濾記錄 5 和 6。 您可以使用該條件 LEFT JOIN 購買表。 您將獲得所有交易,但如果購買列不屬於交易 5 或 6,則它們將為 NULL。

SELECT * 
FROM customers c
INNER JOIN transactions t 
  ON c.custid = t.custid
LEFT JOIN purchaces p 
  ON t.transid = p.transid 
  AND t.trans_num IN (5,6)
WHERE c.customer = 1234 
ORDER BY t.trans_num

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM