Java多表查询

时间:2014-07-01 09:21:00

标签: java mysql

我想用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);

            }

4 个答案:

答案 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;