去掉重复行的问题?
就两张的查询,两张的关系是一对多的关系,这张表adrReport对应这一张表adrMedDetail是一对多的关系,现在我将所写的方法及查询的语句给大家看看:
public ActionForward selectHitInfo(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
AdrReportForm adrReportForm = (AdrReportForm) form;
DetachedCriteria dc = DetachedCriteria.forClass(AdrReport.class);
Connection conn = DBConnect.getDBConnect(); //调用jdbc连接的方法
String result = request.getParameter("result");
String sql = "select a.*,b.CurrentName, b.MedicationName, b.dosage from "
+ "adrReport a, adrMedDetail b where "
+ "a.id = b.reportid and result like '%"+result+"%' "; // 取出表中的相关数据
PreparedStatement psm = conn.prepareStatement(sql);
ResultSet rs = psm.executeQuery();
List list = new ArrayList();
while(rs.next()) {
HitDrugStat hit = new HitDrugStat();
hit.setOrgName(rs.getString("orgname"));
hit.setDegree(rs.getString("degree"));
hit.setAdrName(rs.getString("adrname"));
hit.setResult(rs.getString("result"));
hit.setHappenDate(rs.getDate("happenDate"));
hit.setSufferName(rs.getString("sufferName"));
hit.setSignOfReporter(rs.getString("signOfReporter"));
list.add(hit);
}
request.setAttribute("listone", list);
return mapping.findForward("hitdrugStat");
}
因为是这一个条件 a.id = b.reportid , reportid是可以重复的,所以它查出来有重复的记录,它所代表的意思就是可以有多个药品(的reportid),而adrReport表中有一个不良反应名称的字段adrName,(比如:发烧、头痛),所以,可能是由多个药品所引起的不良反应症状(比如说:有可能是白加黑、感康等药品)。
现在所要解决的问题就是:以上的SQL语句查出来的有重复的记录,怎么去掉重复的行?这个问题应该如何解决?先谢谢各位朋友了,帮帮忙!