在MySql LEFT JOIN语句中使用多个ON条件不起作用

Chrillewoodz

我正在尝试将left join我的两个表放在一起,并且仅在之后使用一个条件时才起作用,ON但是当我尝试添加第二个条件时,我没有从firstnamelastname列中获得任何信息我一直在这里查看其他答案,从我看到的结果来看,我所做的一切都正确,因此我无法弄清为什么它不起作用。

这是我的尝试:

$stmt = 'SELECT courses.*, teachers.firstname, teachers.lastname ';
$stmt .= 'FROM courses LEFT JOIN teachers ON ';
$stmt .= 'courses.main_teacher = teachers.id AND courses.secondary_teacher = teachers.id';

$prep_stmt = $db->prepare($stmt);
$prep_stmt->execute();

while ($db_row = $prep_stmt->fetch(PDO::FETCH_ASSOC)) {
    echo '<tr>';
    echo '<td class="info-cell">' . $db_row['name'] . '</td>';
    echo '<td class="info-cell">' . $db_row['curriculum_url'] . '</td>';
    echo '<td class="info-cell">' . $db_row['rating_criteria'] . '</td>';
    echo '<td class="info-cell">' . $db_row['firstname'] . ' ' . $db_row['lastname'] . '</td>'; //Echoes main_teacher
    echo '<td class="info-cell">' . $db_row['firstname'] . ' ' . $db_row['lastname'] . '</td>'; //Echoes secondary_teacher
    echo '<td class="info-cell">' . $db_row['for_programme'] . '</td>';
    echo '<td class="info-cell">
              <button class="small-btns"><img src="../includes/img/edit.png"></button>
          </td>';
    echo '<td class="info-cell">
              <button class="small-btns"><img src="../includes/img/delete.png"></button>
          </td>';
    echo '</tr>';  
}

这是它的输出:

左联接结果

如您所见,使用多个条件时,它不会从教师表中返回任何结果,这是为什么呢?

编辑

我数据库中的课程表:

课程表

我数据库中的Teachers表:

教师桌

我想要的理想结果:

理想的结果

阿比克·查克拉博蒂(Abhik Chakraborty)

看来您需要加入teachers2次

select
c.*, 
t1.firstname as main_teacher_firstname, 
t1.lastname as main_teacher_lastname,
t2.firstname as secondary_teacher_firstname, 
t2.lastname as secondary_teacher_lastname
from courses c
left join teacher t1 on t1.id = c.main_teacher
left join teacher t2 on t2.id = c.secondary_teacher

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MySQL LEFT JOIN不起作用

来自分类Dev

MySQL LEFT JOIN 与 OR 条件

来自分类Dev

MySQL与Left Join相反

来自分类Dev

Mysql语句中LEFT JOIN返回的ID不正确

来自分类Dev

MySQL LEFT JOIN无法使用多个表

来自分类Dev

MySQL从多个表与LEFT JOIN多个

来自分类Dev

MySQL "Left Outer Join" Issue

来自分类Dev

带有IF的MySQL LEFT JOIN

来自分类Dev

MySQL的:添加其中,在LEFT JOIN

来自分类Dev

MySQL 5.1.73 LEFT JOIN超时

来自分类Dev

MySQL可选的LEFT JOIN与MATCH

来自分类Dev

MySQL UNION ALL与LEFT JOIN

来自分类Dev

MYSQL LEFT JOIN选择增强

来自分类Dev

MYSQL中的LEFT JOIN问题

来自分类Dev

MySQL LEFT JOIN的WHERE子句

来自分类Dev

MySQL LEFT JOIN错误#1064

来自分类Dev

MySQL多个LEFT JOIN返回重复的行

来自分类Dev

MySQL使用LEFT JOIN聚合函数

来自分类Dev

使用WHERE子句的MySQL LEFT JOIN查询

来自分类Dev

使用COUNT ON LEFT JOIN进行MySQL查询

来自分类Dev

mysql pdo使用LEFT JOIN更新记录

来自分类Dev

MySQL-如何改善使用多个LEFT JOIN的复杂查询

来自分类Dev

如何使用 LEFT JOIN 连接多个 mySQL 表?

来自分类Dev

JPA Left Join IS NULL条件不起作用

来自分类Dev

PostgreSQL LEFT OUTER JOIN条件不起作用

来自分类Dev

多个LEFT JOIN在SUM()上不起作用

来自分类Dev

MySQL语句中包含日期的Where子句不起作用

来自分类Dev

Mysql的INNER JOIN后LEFT OUTER JOIN

来自分类Dev

MySQL查询Select,SUM,LEFT JOIN