比较并显示不匹配的数据

时间:2016-04-29 06:59:23

标签: php mysql sql codeigniter join

如何更改查询以选择所有未共享的数据ReportID

所有'report.Report_Name, report.ReportDate, report.ReportID'report.ReportID = Read_Report.ReportID

不匹配

然后从report

获取所有不匹配的内容

查询

 $this->db->select('report.Report_Name, report.ReportDate, report.ReportID')
            ->from('report')
            ->join('Read_Report', 'report.ReportID = Read_Report.ReportID')
            ->where('Read_Report.StaffID', $this->session->userdata("StaffID"));
        $result = $this->db->get();
        return $result->result();

2 个答案:

答案 0 :(得分:0)

也许这会奏效吗?

    $this->db->select('report.Report_Name, report.ReportDate, report.ReportID')
        ->from('report')
        ->join('Read_Report', 'report.ReportID = Read_Report.ReportID')
        ->where('Read_Report.StaffID !=', $this->session->userdata("StaffID"));
    $result = $this->db->get();
    return $result->result();

答案 1 :(得分:0)

你想要做的是两组之间的区别,通常这是通过左连接和右表的外键上的null where子句完成的(某些数据库提供了交叉函数,但是因为我不知道您使用哪个数据库我将坚持使用适用于任何SQL语言的内容

所以你的查询应该是这样的:

SELECT report.Report_name, report.ReportDate, report.ReportId
FROM report LEFT JOIN Read_Report ON report.ReportId=Read_Report.ReportId
WHERE Read_Report.ReportId IS NULL

我不知道你的querybuilder的具体语法,但我认为你将有一个leftJoin方法和一种检查列是否为空的方法。

顺便说一下,尝试坚持使用表和列名称的唯一命名和案例方案