如何更改查询以选择所有未共享的数据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();
答案 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方法和一种检查列是否为空的方法。
顺便说一下,尝试坚持使用表和列名称的唯一命名和案例方案