我在Oracle DB中运行SQL查询,我正在使用模式名称。
有3个表(和列):
public class RunScript extends Thread {
@Override
public void run() {
try {
File file = new File("D:\\jacob-1.18-x86.dll");
System.setProperty(LibraryLoader.JACOB_DLL_PATH, file.getAbsolutePath());
AutoItX autoIt = new AutoItX();
Thread.sleep(2000);
autoIt.winActivate("yourWindowName", "");
autoIt.winWaitActive("yourWindowName");
if (autoIt.winExists("yourWindowName")) {
autoIt.send("username{TAB}", false);
autoIt.send("password{Enter}", false);
}
}
} catch (InterruptedException ex) {
//
}
}
}
架构是:user (user_key, user_name)
roles (roles_key, role_name)
junction (roles_key, user_key)
我可以将查询编写为internal_schema
如何加入这些表格,以便获得select * from internal_schema.user;
和user_name
。
答案 0 :(得分:0)
类似的东西:
SELECT fa_oim.usr.usr_display_name, fa_oim.usg.usg_display_name
FROM fa_oim.usr INNER JOIN fa_oim.usg USING (usr_key)
INNER JOIN fa_oim.ugp USING (ugp_key)
但是,如果从同一模式运行查询,则不需要模式名称。
答案 1 :(得分:0)
有点快,又脏,但应该解决问题。 ; - )
SELECT a.usr_display_name, c.usg_display_name
FROM usr a, usg b, ugp c
WHERE b.usr_key = a.usr_key
AND b.ugp_key = c.ugp_key
答案 2 :(得分:0)
您可以为3桌加入
执行此操作SELECT a.usr_display_name, c.usg_display_name
FROM usr a INNER JOIN usg b ON a.usr_key = b.ugp_key
INNER JOIN ugp c ON b.ugp_key = c.ugp_key;
但是对于你的表定义,你不需要进行3路连接,而是单个连接就足够了
SELECT a.usr_display_name, c.usg_display_name
FROM usr a INNER JOIN usg c ON a.usr_key = c.ugp_key;