簡體   English   中英

我正在嘗試加入其中一個表中不存在用戶記錄的表

[英]I am trying to join tables where a user record does not exist in one of the tables

我有一個帶有贈款和購買表的獎勵計划。 我正在嘗試創建一個顯示用戶余額的報告。 但是,如果用戶尚未購買,余額報告將不包含他們的記錄。 該報告僅包含已獲得贈款並至少進行過一次購買的用戶。

使用的第三個表是我們的用戶記錄表,用於拉入用戶記錄。

有沒有辦法將購買表中的無記錄視為“0”余額?

您不能為每個余額為 0 的用戶設置一個條目嗎? 這就是這行不通的原因。 您要求數據庫加入/顯示不存在的內容。

如果沒有加入,您可以將任何記錄顯示為 0,但您將無法創建一個無任何連接,因此我建議您在購買平板電腦中為每個用戶(創建用戶帳戶時)添加一個條目,余額為 0 .

希望這可以幫助

這樣的事情應該工作:

CASE WHEN (SELECT COUNT(*) FROM purchases WHERE purchase_user_id = user_id) > 0
     THEN balance_value
     ELSE 0
 END as balance

編輯:根據您添加的查詢,我認為您可以在執行SUM()之前將金額COALESCE為 0 。 如果購買表中沒有記錄,這應該可以防止返回 NULL 值。

SELECT ce.platform_id,
       SUM(COALESCE(p.amount, 0))
FROM current_eligibility ce
LEFT JOIN purchases p ON p.platformId = ce.platform_id
WHERE p.currency = 'X123' AND
      ce.platform_id = 'X2334'
GROUP BY ce.platform_id

暫無
暫無

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

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