【问题标题】:Can't select inner join data from MYSQL无法从 MYSQL 中选择内部联接数据
【发布时间】:2017-08-25 13:52:38
【问题描述】:

我无法从 Java 中的 MYSQL 中选择内连接数据。

我在 Java 中使用这段代码:

Class.forName("com.mysql.jdbc.Driver");
Connection conexao = DriverManager.getConnection("jdbc:mysql://localhost:3306/despesas?useSSL=true", "root", "local"); 
Statement comando = conexao.createStatement();
String sqlInsert;
ResultSet rsTDP;
sqlInsert = "select id_historico, tipos_de_despesas.descricao, dt_desp, valor_despesa from tipos_de_despesas INNER JOIN historico_despesas ON tipos_de_despesas.id_despesa=historico_despesas.id_despesa ORDER BY dt_desp desc";
rsTDP = comando.executeQuery(sqlInsert);
while(rsTDP.next()){
    System.out.println("ID da Despesa: " + rsTDP.getString("id_despesa") + " | Descrição: " + rsTDP.getString("descricao"));
}

此 sintax 在 MYSQL Workbench 中有效,但在 Java 中无效。

SELECT id_historico, tipos_de_despesas.descricao, dt_desp, valor_despesa from tipos_de_despesas INNER JOIN historico_despesas ON tipos_de_despesas.id_despesa=historico_despesas.id_despesa ORDER BY dt_desp desc

This is result in Workbench

谁能帮帮我?

【问题讨论】:

  • 在 Java 中不起作用意味着什么?
  • 您是遇到错误还是没有得到任何结果?
  • 请注意,在 Workbench 中它不返回任何 SELECT 数据,但在 Java 中它返回 SQLException。您应该在 Java 控制台中返回所有数据,就像在 Workbench 中一样。
  • 所以你得到一个关于 Java 控制台和 Workbench 的 SQLException?我很困惑。
  • 当然,但是异常的消息是什么?

标签: java mysql jdbc


【解决方案1】:

我敢打赌,这个异常实际上来自这一行:

System.out.println("ID da Despesa: " + rsTDP.getString("id_despesa") + " | Descrição: " + rsTDP.getString("descricao"));

我在 select 语句中看不到 id_despesa 列,ResultSet 只能从 select 语句中读取列。所以rsTDP.getString("id_despesa") 会抛出一个SQLException

如果您不需要 id_despesa 列,则可以将其从 println 中删除。否则,您可以将 SQL 更改为:

sqlInsert = "select tipos_de_despesas.id_despesa, id_historico, tipos_de_despesas.descricao, dt_desp, valor_despesa from tipos_de_despesas INNER JOIN historico_despesas ON tipos_de_despesas.id_despesa=historico_despesas.id_despesa ORDER BY dt_desp desc";

将列添加到查询后,您将能够从结果中得到id_despesa

【讨论】:

    猜你喜欢
    • 2012-06-10
    • 2017-01-01
    • 2013-01-20
    • 2015-11-01
    • 2017-07-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-18
    • 2010-12-26
    相关资源
    最近更新 更多