0

我在我的项目中遇到了 mysql 问题。我认为这里有问题

rs = bd.consultar(
      "SELECT mensagens.assunto as 'Assunto', mensagens.texto as 'texto', usuarios.username as 'Para', mensagens.data_hora as 'Hora Data' "
       + "FROM mensagens, usuarios"
       + "WHERE mensagens.para = usuarios.idusuarios and mensagens.de = " + Login.getUsuarioAtual().getId() + ";");

        while (rs.next()) {
        mensagemTemp = new Mensagem(rs.getString("Assunto"), rs.getString("texto"),
                Login.getUsuarioAtual().getUsername(), rs.getString("Para"), rs.getDate("Hora Data"));

        enviadas.add(mensagemTemp);
    }

这是错误:

    com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:不唯一的表/别名:'mensagens'
    ...
    在 Banco_de_Dados.BancoDeDados.consultar(BancoDeDados.java:29)
        在 Banco_de_Dados.BancoMensagem.mensagensEnviadas(BancoMensagem.java:93)
        在 GUI.Mensagens.MensagensRecebidas.initComponents(MensagensRecebidas.java:101)
        在 GUI.Mensagens.MensagensRecebidas.(MensagensRecebidas.java:27)
        在 GUI.Login.jBentrarActionPerformed(Login.java:230)
        在 GUI.Login.access $200(Login.java:20)
        在 GUI.Login$3.actionPerformed(Login.java:171)
    ...

我已经在 mysql 中使用 java 代码完成了查询,它可以工作。有人能看出什么不对吗???

对不起我的英语

4

2 回答 2

1

哦,我只是在查询中+“FROM mensagens,usuarios”之后忘记了一个空格,抱歉打扰

于 2013-04-15T11:22:42.750 回答
0
SELECT m.Assunto 
     , m.Texto 
     , u.username Para
     , m.data_hora `Hora Data`
  FROM mensagens m
  JOIN usuarios u
    ON u.idusuarios = m.username 
 WHERE m.de = Login.getUsuarioAtual().getId();
于 2013-01-12T17:48:48.057 回答