如何使用 Supabase 按枢轴 table 内的值进行过滤?

How can I filter by a value inside a pivot table using Supabase?

我正在构建一个自行车租赁应用程序,用户可以在其中预订自行车一定天数。自行车和用户之间存在多对多关系,有一个 bike_user 枢轴 table 包含有关预订开始和结束日期的信息。看图:

我需要获取一个日期范围,并过滤自行车,仅显示这两个日期之间尚未预订的自行车。

你能帮我弄清楚怎么做吗?

documentation 在这一项上不是很清楚,但您可以使用 inner 关键字按加入的 table 中的值过滤结果,如下所示:

const {data, error} = await supabase.from('bikes')
  .select('*, bike_user!inner(reservation_start_date, reservation_end_date)')
  .gt('bike_user.reservation_start_date', '2022-01-01 15:00:00.000')
  .lt('bike_user.reservation_end_date', '2022-11-01 19:00:00.000')

让我知道这是否适合您!