我正在尝试为我的 Java 讨论板创建一个合适的 SQL 查询。我的程序基本上需要创建的用户名、消息文本(即创建日期)通过PreparedStatement 在 GUI 中显示。
表格如下所示(我省略了一些列):
表消息:
messageid、projectid、employeeid、messagetext、已创建
表员工:
员工 ID、用户名
不,我已经尝试过这个,效果很好,只是我需要用户名而不是员工 ID:
SELECT messageid, projectid, employeeid, messagetext, created, updated
FROM message
WHERE projectid = 4
我知道我可以通过这样做获得正确的用户名:
SELECT username
FROM employee
INNER JOIN message
ON employee.employeeid=message.employeeid
但是我如何将两者整合到一个声明中呢?因为我的 JAVA 代码使用从语句中获取的数据创建了一个消息对象:
String query="SELECT messageid, projectid, employeeid, messagetext, createdFROM message WHERE projectid= ?";
stmt = con.prepareStatement(query);
stmt.setInt(1, id);
stmt.executeQuery();
rs = stmt.getResultSet();
while(rs.next()) {
int messageid = rs.getInt("messageid");
int projectid = rs.getInt("projectid");
int employeeid = rs.getInt("employeeid");
String messagetext = rs.messagetext ("messagetext ");
String created = rs.getString("created");
ObjMessage oMsg = new ObjMessage (messageid, projectid, employeeid, messagetext, created);
AllMessages.add(oMsg);
}
我是否必须重新设计对象创建过程才能接受两个结果语句?或者有更好的办法吗?
免责声明:我将一些 JAVA 变量修改为英文,因此可能存在一些错误...
最佳答案
SELECT e.username, m.messageid, m.projectid, m.employeeid, m.messagetext, m.created, m.updated
FROM employee e
INNER JOIN message m
ON e.employeeid=m.employeeid
关于java - 嵌套 SQL 语句或 View ?什么是理想的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20679474/