我有2个表,分别称为结果和主题
我想显示这样的数据
我有以下代码:
$result_hallticket= "13d01a0589";
$subject_department= "Civil";
如果我搜索任何门厅和部门,则每次使用select语句都会显示主题名称和最高分数
select *
from subject
where subject_department='$subject_department'
AND subject_semester="1-1";
因此,我希望所有科目名称都应来自内部,并且外部和外部标记均来自结果数据库,且与Hallticket和学期相匹配。如果找到匹配项,则显示数字
subject_name=result_subject
如果未找到任何结果,则内部和外部标记均仅显示0个标记。
我需要一个查询来显示所有这些信息。
我真正需要的是: 我需要一个带有4列的表格(主题名称,最大分数,内部分数,外部分数)
主题名称和最高分数来自 subject 表,内部分数和外部分数来自 result 表。
主题名称和最高分取决于部门和学期。内部标记和外部标记将取决于礼堂,学期和科目。
答案 0 :(得分:0)
我的理解是,如果表中有对应的记录,则要显示标记;否则,则要显示零。
您可能会查看LEFT OUTER JOIN
(并了解它和INNER JOIN
之间的区别),然后使用IFNULL()
将null合并为零。
答案 1 :(得分:0)
您需要左联接:
select
s.subject_name "SUBJECT NAME",
s.subject_maxmarks "MAX MARKS",
ifnull(r.result_internalmarks, 0) "INTERNAL MARKS",
ifnull(r.result_externalmarks, 0) "EXTERNAL MARKS"
from subject s left join results r
on r.result_subject = s.subject_name
where
s.subject_department='$subject_department'
and
s.subject_semester="1-1";
答案 2 :(得分:0)
希望此帮助
SELECT result.result_internalmarks,result.result_externalmarks
FROM result INNER JOIN subject ON
result.result_subject = subject.subject_name WHERE
result.result_hallticket = '$result_hallticket' AND
result.result_department = '$subject_department'