2014-10-30 48 views
0

我從隊友那裏得到一個關注查詢。 但我知道查詢的一部分。 我認爲它的意思是從db_user和direct_groups表輸出名稱字段,如果名稱字段與direct_groups表相等dba。是對的嗎??什麼意思是查詢的一部分?

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

究竟是什麼類型的SQL?甲骨文? SQL Server? – 2015-09-03 05:42:05

+0

您是否針對任何數據庫運行了此查詢? – 2015-09-03 05:44:34

+0

看起來像一個oracle表函數調用 – 2015-09-03 06:09:30

回答

0

這看起來不像有效的SQL。沒有別名「a」,因此它不能選擇「a.name」。它看起來像代碼試圖爲具有角色=「dba」的用戶選擇所有用戶「名稱」。

0

提供的查詢會出現使用「表函數」,所以我認爲這是Oracle正在使用

選擇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' 

這似乎列出每一個所有用戶名由「表函數」返回的名稱爲「dba」的行