PHP-从两个表中选择时得到错误的结果
我一直在尝试在选择组合框时获得一些结果。PHP-从两个表中选择时得到错误的结果,php,mysql,Php,Mysql,我一直在尝试在选择组合框时获得一些结果。 我的问题是: $strSQL = "SELECT * FROM studentresult,student where studentresult.studentid=student.id and student.class='$classes' and term='$term'and studentresult.studentid=student.id and year='$year' "; 此查询将返回所有studentresult.id=2,其中
我的问题是:
$strSQL = "SELECT * FROM studentresult,student where studentresult.studentid=student.id and student.class='$classes' and term='$term'and studentresult.studentid=student.id and year='$year' ";
此查询将返回所有studentresult.id=2,其中studentresult.id为主
这是php代码:
<td><div align="center"><?=$objResult["id"];?></div></td>
<td><div align="center"><?=$objResult["studentid"];?></div></td>
<td><?=$objResult["subjectid"];?></td>
<td><?=$objResult["marks"];?></td>
<td><div align="center"><?=$objResult["term"];?></div></td>
<td align="right"><?=$objResult["year"];?></td>
<td align="right"><?=$objResult["rank"];?></td>
id是从student表中获取的,而不是从studentresult表中获取的。有人能帮我吗。编辑1:
id出现在两个表中
编辑2:
学生成绩:
id |学生id |主体|分数|等级|学期|年份
学生:
id | Roll Num | class | Name |姓氏
提前感谢您
巴姆 然后
如果两个表的列名相同,最好指定列名而不是(*),以避免列名冲突,并根据需要尝试使用Join(内部或左侧) 例如,像这样的事情: 选择S.id作为学生id,SR.id作为学生结果id,S.class,S.year 来自studentresult作为SR 内部连接学生为S
其中SR.studentid=S.id和S.class='$classes'和S.term='$term'和SR.studentid=S.id和S.year='$year'首先,为什么在WHERE子句中使用这两次
studentresult.studentid=student.id
请在连接具有相同列名的表时显式定义所有需要的列,例如
选择studentresult.id作为sr\u id,选择student.id作为s\u id。。。来自…
并在php代码中对其进行更改:
<td><div align="center"><?=$objResult["id"];?></div></td>
<td><div align="center"><?=$objResult["studentid"];?></div></td>
<td><?=$objResult["subjectid"];?></td>
<td><?=$objResult["marks"];?></td>
<td><div align="center"><?=$objResult["term"];?></div></td>
<td align="right"><?=$objResult["year"];?></td>
<td align="right"><?=$objResult["rank"];?></td>
两个表中都有id吗?是的,两个表中都有id,先生…然后使用“选择studentresult.id作为stid”,然后使用“可以显示您的表结构。请检查您的where条件,您已经比较了两次相同的条件,我认为存在问题?”?如果你仍然面临同样的问题,请让我改变。
<div align="center"><?=$objResult["stid"];?></div>