在第1行上将JOIN issuedevices AS sm ON sd.DeviceID = sm.DeviceID'

时间:2019-05-27 06:12:05

标签: java sql jdbc mariadb

我想从两个表中获取数据。

deviceadd包含以下列

DeviceID (primary key), DeviceName, SerialNumber, ModelNumber, Make

和另一个表issuedevices具有以下列:

Device_ID (Unique), Employee_id, Employee_Name, Employee_Ext, Issue_Date

我收到此错误:

  

java.sql.SQLSyntaxErrorException:您的SQL错误   句法;检查与您的MariaDB服务器相对应的手册   在'Left JOIN issuedevices AS sm附近使用正确语法的版本   在第1行上打开sd.DeviceID = sm.DeviceID'

PreparedStatement ps=con.prepareStatement("Selectsd.DeviceID,sd.DeviceName,sd.SerialNumber,sd.ModelNumber,sd.Make,sm.DeviceID,sm.Employee_Name,sm.Employee_Ext,sm.Issue_Date From deviceadd AS sd,Left JOIN issuedevices AS sm ON sd.DeviceID = sm.DeviceID");

        ResultSet rs=ps.executeQuery();

        ResultSetMetaData rsmd=rs.getMetaData();
        int cols=rsmd.getColumnCount();
        column=new String[cols];
        for(int i=1;i<=cols;i++)
        {
            column[i-1]=rsmd.getColumnName(i);
        }

        rs.last();
        int rows=rs.getRow();
        rs.beforeFirst();

        data=new String[rows][cols];
        int count=0;
        while(rs.next()){
            for(int i=1;i<=cols;i++)
            {
                data[count][i-1]=rs.getString(i);
            }
            count++;
        }
        con.close();
    }catch(Exception e){System.out.println(e);}

    table = new JTable(data,column);
    JScrollPane sp=new JScrollPane(table);

    contentPane.add(sp, BorderLayout.CENTER);

1 个答案:

答案 0 :(得分:0)

一个可能的原因是这里没有空格:

Selectsd.DeviceID

应该是

Select sd.DeviceID

此外,这里不应该包含逗号:

sd,Left JOIN