1

我的意思是我有 2 个表格,一个是课程列表 ( courses),第二个是我注册的课程列表 ( StudentCourseRegistration)。我想知道如何发出我保存在StudentCourseRegistration表中的主键,称为,当我调用显示此表时从表CourseCode中隐藏course

所以如果表中出现行数据“CourseCode”-> CAD9047 registered,那么我调用表时不要显示courses。当然,我不能硬编码我想从该表中发出的确切课程代码,因此一旦该代码已向该用户注册,它就会动态更改。

查询是最好的方法吗?

这是我调用输出表的地方:

$string2012 = "SELECT Course.CourseCode, Course.Title, Course.WeeklyHours, Semester.Term, Semester.SemesterCode
    FROM Course, CourseOffer, Semester, StudentCourseRegistration WHERE Semester.YearNum='$selectedYear' AND Course.CourseCode=CourseOffer.CourseCode 
    AND Semester.SemesterCode=CourseOffer.SemesterCode ";
    if($Result2012 = mysqli_query($link, $string2012))
    {
        echo "<form action='CourseSelection.php' method='get'>
        <table><tr><th>Code</th><th>Course Title</th><th>Hours</th><th>Term</th><th>Select</th></tr>";
        while($row2012 = mysqli_fetch_assoc($Result2012))
        {
            echo "<tr><td>$row2012[CourseCode]</td><td>$row2012[Title]</td><td>$row2012[WeeklyHours]</td>
            <td>$row2012[Term]</td><td><input type='checkbox' name='courses[]' value='$row2012[CourseCode]'></td></tr>";
        }
        echo "</table>";
    }

如果存在,我可以在一个表中指定主键/外键现在显示在另一个表中吗?

4

1 回答 1

1
SELECT *
FROM course c
WHERE c.coursecode 
    NOT IN(SELECT r.coursecode FROM studentcourseregistration r)

如果你经常这样做,你可能想要:

CREATE VIEW filtered_courses AS
    SELECT *
    FROM course c
    WHERE c.coursecode 
        NOT IN(SELECT r.coursecode FROM studentcourseregistration r)
于 2012-10-31T23:46:04.667 回答