提前为一个模棱两可的标题道歉,但我想不出一个好的标题。
我有 2 张桌子:
bookings(booking_id, customer_id)
charges(customer_id, booking_id, amount)
在费用表中,必须输入 booking_id 或 customer_id。不是都。
我正在尝试获取与customer_id关联的金额
因为customer_id有时在charges表中为null,所以我必须使用booking_id通过bookings表获取customer_id。
所以,我有一个这样的查询:
SELECT c.amount
FROM charges as c, bookings as b
WHERE (c.customer_id = 1234) OR
(c.customer_id = null AND c.booking_id = b.booking_id AND b.customer_id = 1234)
但是,它似乎创建了一个无限循环。
有什么建议么?
谢谢,