Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 需要为以下内容创建一个视图_Sql_Database_Join_View_Cockroachdb - Fatal编程技术网

Sql 需要为以下内容创建一个视图

Sql 需要为以下内容创建一个视图,sql,database,join,view,cockroachdb,Sql,Database,Join,View,Cockroachdb,这里有三张桌子 Table users { id uuid [pk, default: `gen_random_uuid()`] auth_id uuid [ref: - auths.id] org_id uuid [ref: - orgs.id] access_group text [default: 'DEFAULT'] created_at int [default: `now()::int`] updated_at int age int status t

这里有三张桌子

Table users {
  id uuid [pk, default: `gen_random_uuid()`]
  auth_id uuid [ref: - auths.id]
  org_id uuid [ref: - orgs.id]
  access_group text [default: 'DEFAULT']
  created_at int [default: `now()::int`]
  updated_at int
  age int
  status text
}

Table op_user_access_groups {
  op_id uuid [pk, ref: > ops.id]
  access_group text [pk, default: 'DEFAULT']
}

Table op_users {
  op_id uuid [pk, ref: > ops.id]
  user_id uuid [pk, ref: > users.id]
  access boolean [default: false]
}
  • users
    包含用户信息,并且他/她属于某个组织(组织id)
  • op\u user\u access\u groups
    包含关于操作员有权访问所有访问组的信息。
    op\u id
    属于
    org\u id
  • op_users
    包含用户(用户id)的相关信息,无论用户属于哪个组,
    op_id
    都可以访问这些信息
  • 我想创建一个视图,以便

    select * from <that view> where op_id = ?
    
    select*其中op_id=?
    
    我应该找到操作员可以访问的用户


    非常感谢您的帮助:)

    您应该使用
    JOIN
    查询来创建这样的视图。大概是这样的:

    CREATE VIEW v AS
    SELECT * FROM users
    JOIN op_users ON users.id=op_users.op_id
    JOIN op_user_access_groups ON op_user_access_groups.access_group=users.access_group
    WHERE op_users.access = true
    
    从您的问题来看,您的数据模型是如何工作的还不清楚,但是使用
    JOIN
    创建一个视图来回答您的问题才是正确的答案