Flutter Supabase - 连接表

发布于 2025-01-17 17:43:12 字数 1135 浏览 5 评论 0 原文

我有 2 个表

  1. 部门(id,department_name)
  2. 程序(id,program_name,department_id)

数据流图

Department 表中的外键

Programs 中的 dept_id 是我想要加入的 Program 表中的 department_idDepartment 表中的 id 我无法在 Flutter supabase supabase_flutter: ^0.2.12 中执行此操作。请帮帮我 谢谢

编辑: 我想从前端执行此操作。 (扑)

CREATE TABLE Departments (
  id INTEGER PRIMARY KEY,
  name TEXT NOT NULL
);

CREATE TABLE Programs (
  id INTEGER PRIMARY KEY,
  name TEXT NOT NULL,
  dept_id INTEGER,
  FOREIGN KEY (dept_id) references Departments(id)
);

INSERT INTO Departments VALUES (1, 'DEPT_A');
INSERT INTO Departments VALUES (2, 'DEPT_B');
INSERT INTO Programs VALUES (1, 'PROG_A', 1);
INSERT INTO Programs VALUES (2, 'PROG_B', 1);
INSERT INTO Programs VALUES (3, 'PROG_C', 2);
INSERT INTO Programs VALUES (4, 'PROG_D', 2);

SELECT Departments.name, Departments.id, Programs.name, Programs.id
FROM Departments 
INNER JOIN Programs
ON Departments.id = Programs.dept_id;

I have 2 tables

  1. Department(id, department_name)
  2. Programs(id, program_name, department_id)

Data flow diagram

dept_id in Programs is the foreign key from Department table

I want to join department_id in Program table and id in Department table
I'm unable to do it in Flutter supabase supabase_flutter: ^0.2.12. Please help me out
Thanks

Edit:
I want to perform this action from the front end. (Flutter)

CREATE TABLE Departments (
  id INTEGER PRIMARY KEY,
  name TEXT NOT NULL
);

CREATE TABLE Programs (
  id INTEGER PRIMARY KEY,
  name TEXT NOT NULL,
  dept_id INTEGER,
  FOREIGN KEY (dept_id) references Departments(id)
);

INSERT INTO Departments VALUES (1, 'DEPT_A');
INSERT INTO Departments VALUES (2, 'DEPT_B');
INSERT INTO Programs VALUES (1, 'PROG_A', 1);
INSERT INTO Programs VALUES (2, 'PROG_B', 1);
INSERT INTO Programs VALUES (3, 'PROG_C', 2);
INSERT INTO Programs VALUES (4, 'PROG_D', 2);

SELECT Departments.name, Departments.id, Programs.name, Programs.id
FROM Departments 
INNER JOIN Programs
ON Departments.id = Programs.dept_id;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

北方的巷 2025-01-24 17:43:13

如果您的数据库有关系,您也可以查询相关表。

final res = await supabase
  .from('countries')
  .select('''
    name,
    cities (
      name
    )
  ''')
  .execute();

这直接来自文档:Supabase Dart 文档

If your database has relationships, you can query related tables too.

final res = await supabase
  .from('countries')
  .select('''
    name,
    cities (
      name
    )
  ''')
  .execute();

This is directly from the docs: Supabase Dart Docs

一笑百媚生 2025-01-24 17:43:13

例如,您有两个表“用户”和“衣服”。

并且您在“用户”列“clothe_id”中作为“衣服”中“id”列的外键。

您可以使用此代码来获取表格。

final List data = await AppSupabase.client
        .from('users')
        .select('name, clothes!users_clothe_id_fkey!inner(*)')
        .eq('name', 'Admin');

// [{name: Admin, clothes: {id: 1, title: Costume, level: 4, ...}}]

您还可以按“衣服”中的“级别”列进行过滤:

final List data = await AppSupabase.client
        .from('users')
        .select('name, clothes!users_clothe_id_fkey!left(level)')
        .gte('clothes.level', 2);

//[{name: Jane, clothes: null}, {name: Admin, clothes: {level: 4}}] 


final newList = data
        .where((element) => element['clothes'] != null)
        .toList();

//[{name: Admin, clothes: {level: 4}}]

For example, you have two tables "users" and "clothes".

And you have in "users" column "clothe_id" as forieng key for column "id" in "clothes".

You can use this code to get tables.

final List data = await AppSupabase.client
        .from('users')
        .select('name, clothes!users_clothe_id_fkey!inner(*)')
        .eq('name', 'Admin');

// [{name: Admin, clothes: {id: 1, title: Costume, level: 4, ...}}]

Also you can filter, for example, by column "level" in "clothes":

final List data = await AppSupabase.client
        .from('users')
        .select('name, clothes!users_clothe_id_fkey!left(level)')
        .gte('clothes.level', 2);

//[{name: Jane, clothes: null}, {name: Admin, clothes: {level: 4}}] 


final newList = data
        .where((element) => element['clothes'] != null)
        .toList();

//[{name: Admin, clothes: {level: 4}}]

很酷不放纵 2025-01-24 17:43:13

您可以通过在要添加一个列上的列上的编辑来从表编辑器内部设置supabase中的外键关系。

you can set up a foreign key relation in supabase from within your table editor by pressing edit on the column you want to add one to.

enter image description here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文