好的,我有一个未读的报告表和报告表,点击一个按钮,StaffID
和ReportID
就会收到已读的表(Read_Report
)。
我可以检索所有与工作人员匹配的已读报告(查询1)
我可以获得不在两个表中但仅在报表(查询2)中的所有报表。
然而,在查询2中,我需要得到既不是已读的报告,也不是与会话ID相关的报告。
报告
- 报表ID(PK)
有什么办法可以让这个工作吗?
Read_Report
- 员工ID(FK)
- 报表ID(FK)
报告
工作 (查询1)
function get_read_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();// fetch data then return
}
不是用户的个人(查询2)。
function get_unread_report()
{
$this->db->select('report.Report_Name, report.ReportDate, report.ReportID')
->from('report')
->join('Read_Report', 'report.ReportID = Read_Report.ReportID', 'left')
->where('Read_Report.ReportID IS NULL');
// ->where('Read_Report.StaffID',$this->session->userdata("StaffID"));
$result = $this->db->get();
return $result->result();
}
问题中似乎没有足够的信息来提供任何答案。让我解释一下原因。
如果我正确理解问题,您需要从report
表中获取尚未读取的记录,因此在Read_Report
表中没有任何相关记录,但同时对$this->session->userdata("StaffID")
有一些参考。这是正确的吗?
我们不知道report
表是否对StaffID
有任何引用,或者是否存在同时引用report
表中的ReportID
和StaffID
的任何其他表。简言之,除了告诉我们有人阅读了报告的表之外,我们不知道report
是如何与stuff id相关的。
很可能应该有一个表或一些逻辑来定义StaffID
是否有权访问报告。使用此逻辑,我们可以列出给定StaffID
可用的所有报告,从而与会话ID相关。
一般来说,问题可能是——"与会话ID相关的报告"是什么意思?它们是如何关联的?如果我们不知道这个问题的答案,我们就无法回答你的问题。