有 2 个主表:drivers
并且driver_riders
通过外键连接。每天都有一些司机进行单次或多次骑行。
还有一张桌子driver_rewards
driver_rewards
---
ride_id
reward_percent
reward_amount
一个 cron 作业会rides
每隔一小时扫描一次,选择status = success
游乐设施并将奖励记录插入到driver_rewards
. 但 只有那些尚未插入的游乐设施——也就是说,到目前为止还ride_id = ?
没有记录。driver_rewards
如何正确创建会选择此类的 SQL 查询rides
?我知道LEFT JOIN
,NOT EXISTS
但是我将如何在这里使用它们?
LEFT JOIN
好吧,你可以像这里一样使用外部连接,或者NOT EXISTS
你不需要两者。我更喜欢外部连接,因为它们感觉与我更相关。以下是您可以通过以下方式实现目标的方法:注意你应该:
始终标记您正在使用的数据库系统和版本,因为您的问题的答案可能在逻辑上或语法上有所不同,具体取决于这些因素。
始终提供所有涉及的表的完整定义。我不得不猜测表中列的名称
rides
。