Mysql SQL语句4表连接

Mysql SQL语句4表连接,mysql,sql,Mysql,Sql,您好,目前我的数据库中有4个表:tb_学生、tb_历史、tb_部分和tb_顾问。到目前为止,我用这行代码向我展示了某个学生的历史: $qry_display = "SELECT a.student_id, a.section_id, a.level, a.photo, a.address, a.father_occupation, a.father_phone, a.father_company, a.mother_occupation, a.mother_phone, a

您好,目前我的数据库中有4个表:tb_学生、tb_历史、tb_部分和tb_顾问。到目前为止,我用这行代码向我展示了某个学生的历史:

   $qry_display = "SELECT
        a.student_id, a.section_id, a.level, a.photo, a.address, a.father_occupation, a.father_phone, a.father_company, a.mother_occupation, a.mother_phone, a.mother_company,a.gpa,
        b.fname, b.sex, b.lname, b.mname, b.birth_date, b.birth_place, b.address, b.father, b.father_degree, b.mother, b.mother_degree,
        c.section_name, c.adviser_id
        FROM tbl_er AS a
        LEFT OUTER JOIN tbl_enroll AS b ON a.student_id = b.student_id
        LEFT OUTER JOIN tbl_section AS c ON a.section_id = c.section_id
        WHERE a.student_id=".$id." AND a.level='1st Year'";
我的主要问题是,现在我需要在这些其他信息中显示顾问的姓氏。所以我想把它放进去。请注意,tb_adviser仅通过adviser_id连接到tb_部分

     LEFT OUTER JOIN tbl_adviser AS d ON a.student_id = c.adviser_id
我在where语句之前添加了这一行。并将在我的选择字段中插入此行

     d.lname_adviser
目前它不起作用。任何人都会对我的问题有所了解。

试试这个:

我想你应该这样做

LEFT OUTER JOIN tbl_adviser AS d ON d.adviser_id = c.adviser_id 
所以你的问题是:

Select .....
FROM tbl_er AS a
LEFT OUTER JOIN tbl_enroll AS b ON a.student_id = b.student_id
LEFT OUTER JOIN tbl_section AS c ON a.section_id = c.section_id
LEFT OUTER JOIN tbl_adviser AS d ON d.adviser_id = c.adviser_id 
WHERE a.student_id=".$id." AND a.level='1st Year'

查看db结构会有所帮助,但看起来您正在尝试在两个不匹配的列上进行连接。a.student\u id是否与c.Advisor\u id匹配

假设advisor_id是tbl_advisor中的id,那么只需添加

 LEFT OUTER JOIN tbl_advisor AS d 
 ON d.id = c.advisor_id