javamysql外键约束
因此,我从一个数据库表中选择了一些值,将它们分成几个小组,并将其插入数据库中的另一个表中,但我不知道如何做到这一点,我尝试了很多方法。我设法将它们分成几个小组,并希望将它们插入另一个表中。但我只能将这些值添加到表中,而不能对它们进行分割。任何帮助都将不胜感激。这是我的密码javamysql外键约束,java,mysql,sql,jdbc,Java,Mysql,Sql,Jdbc,因此,我从一个数据库表中选择了一些值,将它们分成几个小组,并将其插入数据库中的另一个表中,但我不知道如何做到这一点,我尝试了很多方法。我设法将它们分成几个小组,并希望将它们插入另一个表中。但我只能将这些值添加到表中,而不能对它们进行分割。任何帮助都将不胜感激。这是我的密码 private void spelersVerdelenMouseClicked(java.awt.event.MouseEvent evt) {
private void spelersVerdelenMouseClicked(java.awt.event.MouseEvent evt) {
String comboBoxValue = jComboBoxDeelnemer.getSelectedItem().toString();
String spelerRonde1 = "SELECT lid, toernooi FROM deelnemer where toernooi LIKE " + comboBoxValue ;
ArrayList<String> dlnmrs = new ArrayList<>();
try {
PreparedStatement pstat = con.prepareStatement(spelerRonde1);
ResultSet rs = pstat.executeQuery();
while (rs.next()) {
dlnmrs.add(rs.getString("lid"));
for (int i = 0; i < dlnmrs.size(); i++) {
}
}
} catch (Exception e) {
JOptionPane.showMessageDialog(rootPane,e);
}
verdeelTafels(1, dlnmrs.size());
private void verdeelTafels(int ronde, int aantalDeelnemers) {
System.out.println(aantalDeelnemers);
int aantalTafels = (int) aantalDeelnemers / AANTAL_SPELERS_PER_TAFEL;
int restSpelerPerRonde = aantalDeelnemers % AANTAL_SPELERS_PER_TAFEL;
if (aantalDeelnemers == (AANTAL_SPELERS_PER_TAFEL * 2)) {
aantalTafels = 1;
restSpelerPerRonde = 0;
}
for (int i = 0; i < aantalTafels; i++) {
int maxSpelersPerTafel = AANTAL_SPELERS_PER_TAFEL;
if (i == aantalTafels - 1) {
maxSpelersPerTafel += restSpelerPerRonde;
}
System.out.println("Tafel " + (i + 1) + " heeft " + maxSpelersPerTafel + " deelnemers.");
//spelersDoorlopen
for (int j = 0; j < maxSpelersPerTafel; j++) {
String query = "insert into spelerPerTafel (lid,tafel,ronde) select lcode,tfcode,rcode from lid,tafel,ronde ";
try{
PreparedStatement pstat = con.prepareStatement(query);
pstat.execute(query);
}
catch (Exception e) {
JOptionPane.showMessageDialog(rootPane,e);
System.out.println(e);
}
}
}
}
不能在VALUES语句部分中使用SELECT语句
如果仔细阅读查询,请将SQL查询重写为:
"insert into spelerPerTafel (lid,tafel,ronde,toernooi) VALUES( "+maxSpelersPerTafel+","+i+",0,1 "+" (SELECT lcode,tfcode FROM tafel))"
在子选择的最后1和打开括号之间缺少一个逗号,即使添加了缺少的逗号,当您仅声明要插入的四列时,您也插入了5个值maxSpelersPerTafel,i,9,1,subselect lid,tafel,ronde,toernooi.这是一个sql错误。请尝试在控制台中打印查询变量,然后复制查询并运行到数据库gui