只显示不在联接表中的行

时间:2018-08-04 14:18:35

标签: php mysql join

我有三个表-class,section,class_section。

课程

class

部分

section

class_section

class-section

我无法显示不在联接表中的行/行。例如,在分析上面的联接表(c_idclass_ids_idsection_idclass_section表时,类一个c_id=1)具有 B s_id=2)部分。现在,在检查“第一类”复选框时,它必须仅显示 A 类,因为尚未插入。总而言之,我试图显示未分配给类的section name,这意味着它不在class_section表中。我无法管理三个表。我做了很多尝试,但是认为下面的代码快要实现了,仍然行不通

"SELECT section.id, section.en_title, class_section.c_id, class_section.s_id FROM section JOIN class_section ON class_section.s_id = section.id WHERE section.id != class_section.s_id AND class_section.c_id=:id"
    $result->bindparam(':id',$_POST['id']);

1 个答案:

答案 0 :(得分:1)

请尝试使用此sql查询解决您的问题。

SELECT class.en_title AS class_name, section.en_title AS section_name FROM class
    INNER JOIN section LEFT JOIN class_section ON 
    (class_section.c_id = class.id AND class_section.s_id = section.id) 
    WHERE class_section.id IS NULL