什么意味着查询的一部分?

时间:2014-10-30 08:52:30

标签: sql

我得到了队友的追问。 但我了解查询的某些部分。 我认为它的含义是db_user和direct_groups表中的输出名称字段,如果name字段与direct_groups表中的dba相等。是吗??

Select a.name 
from db_user, table(direct_groups) as t(roles) 
where roles.name = 'dba'

2 个答案:

答案 0 :(得分:0)

这看起来不像有效的SQL。没有别名“a”因此它不能选择“a.name”。看起来代码试图为具有role =“dba”的用户选择所有用户“名称”。

答案 1 :(得分:0)

提供的查询似乎使用“表函数”,因此我认为正在使用的是

选择a.name 从db_user,表(direct_groups)作为t(角色) 其中roles.name ='dba'

如果我调整查询语法,我猜它会这样做:

SELECT a.name 
FROM db_user a --<< needs this alias
        CROSS JOIN table(direct_groups('roles')) roles --<< use the alias "roles"
WHERE roles.name = 'dba'

它似乎列出了“table function”返回的每一行的所有用户名,其名称为“dba”