【问题标题】:Get all reports where id is only present in one table and id match获取 id 仅存在于一个表中且 id 匹配的所有报告
【发布时间】:2016-04-30 08:21:35
【问题描述】:

好的,我有未读的报告表和报告表,点击按钮StaffIDReportID 会发送已读表(Read_Report)。

我可以检索所有与人员 ID 匹配的已读报告(查询 1)

我可以获得不在两个表中但仅在报告中的所有报告(查询 2)

但是,在查询 2 中,我需要获取 1 也未读取且 2 与会话 ID 相关的报告。

报告

  • 报告 ID (PK)

有什么办法可以让这个工作吗?

Read_Report

  • 员工编号 (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();
    }

【问题讨论】:

    标签: php sql codeigniter join


    【解决方案1】:

    问题中似乎没有足够的信息来提供任何答案。让我解释一下原因。

    如果我正确理解了这个问题,您需要从report 表中获取尚未读取的记录,因此在Read_Report 表中没有任何相关记录,但同时对@ 有一些参考987654323@。这是正确的吗?

    我们确实知道report 表是否有任何对StaffID 的引用,或者是否存在引用report 表中的ReportIDStaffID 的任何其他表。简而言之,我们不知道report 与东西 id 的关系,除了告诉我们有人阅读了报告的表格。

    很可能应该有一个表格或一些逻辑来定义StaffID 是否有权访问报告。使用此逻辑,我们可能会列出给定 StaffID 的所有可用报告,因此与会话 ID 相关。

    一般来说,问题可能是 - “与会话 ID 相关的报告”是什么意思?它们是如何相关的?如果我们不知道这个问题的答案,我们就无法回答您的问题。

    【讨论】:

    • 是的,StaffID 仅在 Read_Reports 中不在报告表中,我想我需要重组数据库以更多地关联 StaffID,StaffID 在按钮单击时存储在 Read_Report 表中,但是报告表中没有任何内容,因为任何人都可以阅读报告。 +!用于指出逻辑。
    • 我明白了。我建议接受答案以确保其他人不会花时间研究看起来已经解决的问题。你是对的,如果你愿意的话,你需要以某种方式定义report is related to staff id 的概念。可以考虑一下为什么有些报告不相关,并以此为基础建立一个标准。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-10
    • 1970-01-01
    • 1970-01-01
    • 2016-01-26
    • 2020-03-25
    相关资源
    最近更新 更多