我想用2个表进行查询,但是,我不能 这是代码,但不起作用 任何想法?
Class.forName("com.mysql.jdbc.Driver");
Connection con = (Connection)DriverManager.getConnection("jdbc:mysql://localhost/kalandpark","root","");
Statement stmt=null;
ResultSet rs=null;
// int vk=(Integer)jList1.getSelectedValue();
String vk=vkTF.getText();
String SQL="Select * from belepes where vonalkod="+vk+" and belepes.jegytipus=jegy.jegytipus";
stmt=(Statement) con.createStatement();
rs=stmt.executeQuery(SQL);
jTextField1.enableInputMethods(false);
while (rs.next())
{
int uvk= (int) rs.getDouble("vonalkod");
String jegyt= rs.getString("jegytipus");
String belep= rs.getString("belepett");
String idolejar= rs.getString("idolejar");
String kilepett= rs.getString("kilepett");
int ssz= rs.getInt("sorszam");
int ar = rs.getInt("ar");
String jegyt2= rs.getString("jegytipus");
jvonalkoD.setText(""+uvk);
jJegytipuS.setText(jegyt);
jbelepetT.setText(belep);
jidolejaR.setText(idolejar);
jkilepetT.setText(kilepett);
jar.setText(""+ar);
}
答案 0 :(得分:1)
你说"两张桌子"但是你的#34;来自"只有一张桌子。条款。您需要在" jegy"中添加联接。表
答案 1 :(得分:1)
首先,了解SQL。你似乎缺乏基本知识。
接下来,永远不要永远,永远将值连接到Java中的SQL字符串中,如下所示:
String SQL="Select * from belepes where vonalkod="+vk+" and belepes.jegytipus=jegy.jegytipus";
相反,请使用PreparedStatement中的setter方法。
答案 2 :(得分:-1)
如果我的猜测是正确的Jegy是另一张桌子?在这种情况下试试这个!
String SQL="SELECT * FROM belepes A LEFT JOIN jegy B ON B.jegytipus = A.jegytipus WHERE vonalkod='"+vk+"'";
答案 3 :(得分:-1)
问题解决了 这是正确的SQL
String SQL =“select be from belepes b inner join jegy j on b.jegytipus = j.jegytipus where b.vonalkod =”+ vk;