如何在Supabase中使用join进行查询?

dsh*_*tjr 4 supabase

在 Supabase 文档中,它解释了如何“加入”表以获取数据

const { data, error } = await Supabase
  .from('countries')
  .select(`
    name,
    cities (
      name
    )
  `)
Run Code Online (Sandbox Code Playgroud)

但是,当我没有指定将加入哪些列时,我怎么知道这每次都有效?有没有办法指定要对哪一列执行连接?

dsh*_*tjr 5

因此,当两个表国家和城市之间只有一个关系(外键)时,此代码有效

const { data, error } = await Supabase
  .from('countries')
  .select(`
    name,
    cities (
      name
    )
  `)
Run Code Online (Sandbox Code Playgroud)

或者当你想加入多个表时,你可以这样做:

const { data, error } = await supabase
  .from('products')
  .select(`
    id,
    supplier:supplier_id ( name ),
    purchaser:purchaser_id ( name )
  `)
Run Code Online (Sandbox Code Playgroud)

  • 我面临着类似的问题,但需要更深入的加入。例如,在这里我们选择国家,然后加入以获得城市。再说了,我想得到城市里的咖啡馆,假设FK都配置好了。`.select(\`名称,城市(名称,餐馆(名称))\`)` 这有效吗?就我而言,它只是显示为 null (4认同)
  • @AmarjeetSinghRai 你还不能做到这一点,但是 Supabase 很快就会推出在父对象中传播嵌套对象的功能。https://supabase.com/blog/postgrest-11-prerelease#spreading-lated-tables 在此功能实现之前,您必须使用数据库函数 https://supabase.com/docs/guides/database/functions (3认同)