我面临着在jsp中编写的摘要页面的重复问题。
我有三个赞助商,每个赞助商都在监督他自己的学校。
当我尝试为所有重要数据执行select语句,并设置学校等于赞助商的schoold id的条件时,它会复制所有数据三次
这里是复制结果的图像
这是我的sql语句:
<sql:query dataSource="${snapshot}" var="result">
SELECT distinct * from Math.Students
INNER JOIN MATH.Schools
ON MATH.Students.Schools_idSchools = <%=session.getAttribute("SPONSOR_SchoolID")%>
INNER JOIN MATH.Sponsor
ON MATH.Schools.idSchools = MATH.Sponsor.Schools_idSchools
INNER JOIN MATH.EventPArticipants
ON MATH.Students.idStudents = MATH.EventParticipants.Students_idStudents
INNER JOIN MATH.Events
ON MATH.EventParticipants.Events_idEvents = MATH.Events.idEvents
</sql:query>
无论如何我可以避免重复部分吗?
答案 0 :(得分:0)
首先,
select distinct *
不止一张桌子上的傻话很傻。您不仅要获得两次加入字段,选择唯一标识符可确保您获得每一行。
接下来,
from Math.Students
INNER JOIN MATH.Schools
ON MATH.Students.Schools_idSchools = <%=session.getAttribute("SPONSOR_SchoolID")%>
INNER JOIN MATH.Sponsor
你没有加入来自学校等地的学生。现在这变成了一个完整的外连接,而不是内连接。
这两点将改善您的结果。