我试图生成所有课程中所有课程的报告。我的问题是如果两个课程都有相同的课程,那么查询将带来两者。如果两个课程中的课程都只需要其中一个,我需要的是什么。
' curriculumcourses'表:在此表中是所有不同课程的课程。
问题发生在例如:
course_id=1
curriculum_id=1
set_numer=0 //this row is not related to the problem
course_id=1
curriculum_id=2
set_numer=0 //this row is not related to the problem
同样的课程_在不同的课程中是正确的,但是当我需要生成这个报告时,我不需要展示我只需要一个的课程。任何帮助将受到高度赞赏。
以下是我使用
的查询$result2 ="SELECT
*
FROM
curriculumcourses NATURAL
JOIN courses
WHERE semester_ava = '$avalablesemster'
AND curriculum_id IN
(SELECT
curriculum_id
FROM
curriculum
WHERE '".$coursneededdate."'
BETWEEN startdate AND enddate ";
if(!empty($gradunder)){
$result2 .=" AND grad_under = '".$gradunder."'";
}
$result2 .=")";
答案 0 :(得分:2)
使用GROUP BY
:
$result2 ="SELECT
*
FROM
curriculumcourses NATURAL
JOIN courses
WHERE semester_ava = '$avalablesemster'
AND curriculum_id IN
(SELECT
curriculum_id
FROM
curriculum
WHERE '".$coursneededdate."'
BETWEEN startdate AND enddate ";
if(!empty($gradunder)){
$result2 .=" AND grad_under = '".$gradunder."'";
}
$result2 .=") GROUP BY (course_id);";
答案 1 :(得分:0)
尝试使用不同的关键字。
EG。在COLUMN_NAME上选择DISTINCT * FROM ...........
COLUMN_NAME是包含课程的列。