从ResultSet访问多个表

时间:2013-10-18 16:19:20

标签: sql jdbc resultset

我有5个表,每个表中的模式是(com_no,uid,date)。我想访问所有表并获取相同uid的com_no。我在JDBC中编写了这个查询

String s1= (String)session.getAttribute("uid"); 
rs1=stat.executeQuery("select distinct com_no from hostel,sports where uid='"+s1+"'");
while(rs1.next()) {
out.println(rs1.getString("com_no"));
}

但是servlet异常是:

The specified field 'com_no' could refer to more than one table listed in the FROM clause of your SQL statement.

任何人都可以帮我改进这个查询或给我一些其他方法来做到这一点。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

请通过检索数据来指定您的需求,但您可以尝试以下代码,以避免您现在遇到的错误,

   rs1=stat.executeQuery("select distinct hostel.com_no as hostelcom, sports.com_no as sportscom from hostel join sports on hostel.uid=sports.uid where hostel.uid='"+s1+"'");

  while(rs1.next()) {
  out.println(rs1.getString("hostelcom"));
   }

您必须查看SQL Join查询。

答案 1 :(得分:0)

UNIONJOIN与别名一起使用,以避免在SELECT查询中出现不明显的字段。

首先,我想知道为什么你有5个表具有完全相同的方案?