我有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.
任何人都可以帮我改进这个查询或给我一些其他方法来做到这一点。任何帮助将不胜感激。
答案 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)
将UNION
或JOIN
与别名一起使用,以避免在SELECT
查询中出现不明显的字段。
首先,我想知道为什么你有5个表具有完全相同的方案?