SQL 加入 Table A 列到 Table B 列 A 或 B

SQL Join Table A Column A to Table B Column A or B

我有 2 个 table - 一个支出 Table 和一个销售 Table

花费 Table 架构: Spend_ID, Spend_amount

销售额Table 架构: Sales_ID_A, Sales_ID_B, Sales_amount

我想将支出 table 与销售额 table 进行左连接。来自支出 table 的连接键是 Spend_ID,当它与 Sales_ID_A 或 Sales_ID_B 中的值相匹配时我想加入,即我的销售匹配键 table 在 2 列中。因此,在某种程度上,它就像将 'or' 条件应用于销售 table Sales_ID_A 或 Sales_ID_B 的连接。如果在 Sales_ID_A 中找到匹配项,则无需检查 Sales_ID_B。如果在 Sales_ID_A 中找不到匹配项,则只检查 Sales_ID_B。我如何使用 SQL 实现此目的?

示例数据说明:

See screenshot

名为 sales_id_asales_id_b 的列实际上是支出 ID,最好称为 spend_id_aspend_id_b

你想加入第一个ID,但如果为空,你想加入第二个ID。为此使用 COALESCE

select *
from sales
left join spend on spend.spend_id = coalesce(sales.sales_id_a, sales.sales_id_b)