Php 根据可用数据显示多个表

Php 根据可用数据显示多个表,php,mysql,html-table,Php,Mysql,Html Table,我试图在一个页面上显示多个表中的数据,但我需要执行不同的查询以使所有人都显示出来。如何设置查询格式,如果学生和专业表中有与studentID匹配的数据,则从job/jobSearch表中选择数据;如果有与studentID匹配的数据,则从education表中选择数据。求职/求职表和教育表不会同时包含同一学生的数据,因为他们要么选择毕业后就业,要么继续接受教育,因此如果选择教育,他们会跳过有关就业的问题,反之亦然 <?php include('includes/db_connect.ph

我试图在一个页面上显示多个表中的数据,但我需要执行不同的查询以使所有人都显示出来。如何设置查询格式,如果学生和专业表中有与studentID匹配的数据,则从job/jobSearch表中选择数据;如果有与studentID匹配的数据,则从education表中选择数据。求职/求职表和教育表不会同时包含同一学生的数据,因为他们要么选择毕业后就业,要么继续接受教育,因此如果选择教育,他们会跳过有关就业的问题,反之亦然

<?php

include('includes/db_connect.php');
//include('student.php');

$query_student="SELECT *
                FROM student
                JOIN major
                ON student.studentID=major.studentID
                JOIN jobSearch
                ON major.studentID=jobSearch.studentID
                JOIN job
                ON jobSearch.studentID=job.studentID
                JOIN education
                ON job.studentID=education.studentId";
    $result_student=mysqli_query($conn, $query_student) or die(mysqli_error($conn));

echo '<table>
    <tr>
        <th>First Name</th> 
        <th>Last Name</th>
        <th>Graduate Year</th>
        <th>Major</th>
        <th>Activity After Graduation</th>
    </tr>';

while($row = mysqli_fetch_array($result_student))
{
    echo'<tr>'; // printing table row
        echo '<td>' . $row['firstName'] . '</td>';
        echo '<td>' . $row['lastName'] . '</td>';
        echo '<td>' . $row['gradDate'] . '</td>'; 
        echo '<td>' . $row['major'] . '</td>';
        echo '<td>' . $row['activity'] . '</td>';
    echo'</tr>'; // closing table row
}
echo '</table>';

$conn->close();
?>


如果提供示例表数据和模式,效果会更好。但我怀疑,如果不同表格中的结果列相同,你可以通过工会声明实现你想要的。基本上,我会让受雇的学生显示为John | Doe | 2016 | Computer Science | employed,另一名正在学习的学生显示为Jane | Dae | 2016 | Stats |研究生院我是稍后将添加更多列,提供关于他们研究生活动的更多信息,但“就业”和“研究生院”位于不同的表中-“工作”和“教育”如果学生在结果集中出现多次,您可以使用distinct筛选重复项。如果我理解正确,您需要的是“LEFT JOIN”例如,
SELECT*FROM student LEFT JOIN major ON student.studentID=major.studentID LEFT job ON job search.studentID=job.studentID LEFT job ON job教育。studentID=education.studentID WHERE job.description=”“软件工程师”和教育专业=“计算机科学”“
您可以在WHERE子句中添加更多筛选器。此查询应为所有学生提供匹配的筛选器-教育、工作等。请调整筛选器和/或。如果提供示例表数据和架构,效果会更好。但我怀疑,如果不同表格中的结果列相同,你可以通过工会声明实现你想要的。基本上,我会让受雇的学生显示为John | Doe | 2016 | Computer Science | employed,另一名正在学习的学生显示为Jane | Dae | 2016 | Stats |研究生院我是稍后将添加更多列,提供关于他们研究生活动的更多信息,但“就业”和“研究生院”位于不同的表中-“工作”和“教育”如果学生在结果集中出现多次,您可以使用distinct筛选重复项。如果我理解正确,您需要的是“LEFT JOIN”例如,
SELECT*FROM student LEFT JOIN major ON student.studentID=major.studentID LEFT job ON job search.studentID=job.studentID LEFT job ON job教育。studentID=education.studentID WHERE job.description=”“软件工程师”和“教育”。major=“计算机科学”
您可以在WHERE子句中添加更多筛选器。此查询应为您提供所有具有匹配筛选器的学生-教育、工作等。调整筛选器和/或。