【问题标题】:Unknown column 'pm1ticket.customer_id' in 'on clause'on 子句中的未知列'pm1ticket.customer_id'
【发布时间】:2020-02-13 05:38:07
【问题描述】:
public function flag_history()
    { 
        $res=$this->db->query("SELECT
                pm1ticket.rep_id AS execut,
                pm1ticket.status_id,
                pm1contact_rep.f_name AS fname,
                pm1contact_rep.l_name AS lname,
                pm1ticket.due_date,
                pm1flag_history.id,
                flagid,
                from_id,
                to_id,
                MAX.time,
                ticketID,
                pm1flag_history.rep_id,
                pm1contact_rep.user_name,
                pm1contact_rep.f_name,
                pm1contact_rep.l_name,
                pm1ticket.subject
            FROM
                pm1flag_history
            JOIN pm1contact_rep ON pm1contact_rep.id = pm1flag_history.to_id
            JOIN pm1contact ON pm1contact.id = pm1ticket.customer_id
            JOIN pm1ticket ON pm1ticket.id = pm1flag_history.ticketID
            INNER JOIN(
                SELECT
                    MAX(TIME) AS TIME,
                    ticketID AS tkt
                FROM
                    pm1flag_history
                WHERE
                    from_id = "
                .$this->SESSION->userdata('TechUser_Id')."
                GROUP BY
                    tkt
            ) MAX
            ON
                MAX.tkt = pm1flag_history.ticketID
            WHERE
                from_id = ".$this->SESSION->userdata('TechUser_Id')." AND flagid = 'rep'
            GROUP BY
                ticketID
            ORDER BY
                TIME
            DESC"
        );
        //echo $this->db->last_query();die;
        $result=$res->result_array();
        return $result;
    }

我有一个使用pm1ticket.customer_id 的SQL 查询。但它在“on 子句”中显示未知列“pm1ticket.customer_id”。

如何解决此错误。谁能帮帮我。

【问题讨论】:

    标签: javascript php sql codeigniter


    【解决方案1】:

    请尝试以下代码

    在 pm1ticket.id = pm1flag_history.ticketID 上加入 pm1ticket
    加入 pm1contact ON pm1contact.id = pm1ticket.customer_id

    这两行的顺序是错误的。

    public function flag_history()
        { 
            $res=$this->db->query("SELECT
                    pm1ticket.rep_id AS execut,
                    pm1ticket.status_id,
                    pm1contact_rep.f_name AS fname,
                    pm1contact_rep.l_name AS lname,
                    pm1ticket.due_date,
                    pm1flag_history.id,
                    flagid,
                    from_id,
                    to_id,
                    MAX.time,
                    ticketID,
                    pm1flag_history.rep_id,
                    pm1contact_rep.user_name,
                    pm1contact_rep.f_name,
                    pm1contact_rep.l_name,
                    pm1ticket.subject
                FROM
                    pm1flag_history
                JOIN pm1contact_rep ON pm1contact_rep.id = pm1flag_history.to_id
                JOIN pm1ticket ON pm1ticket.id = pm1flag_history.ticketID
                JOIN pm1contact ON pm1contact.id = pm1ticket.customer_id            
                INNER JOIN(
                    SELECT
                        MAX(TIME) AS TIME,
                        ticketID AS tkt
                    FROM
                        pm1flag_history
                    WHERE
                        from_id = "
                    .$this->SESSION->userdata('TechUser_Id')."
                    GROUP BY
                        tkt
                ) MAX
                ON
                    MAX.tkt = pm1flag_history.ticketID
                WHERE
                    from_id = ".$this->SESSION->userdata('TechUser_Id')." AND flagid = 'rep'
                GROUP BY
                    ticketID
                ORDER BY
                    TIME
                DESC"
            );
            //echo $this->db->last_query();die;
            $result=$res->result_array();
            return $result;
        }
    

    如果此答案有帮助,请接受此答案,以便对其他人有所帮助

    【讨论】:

    • 对不起,先生,我没有得到你。先生,我不明白我做错了什么。这里只有你需要更改连接查询。它可以正常工作,这不是问题。
    • 你必须先加入'pm1ticket'表才能使用它的列。首先,您首先使用“pm1ticket.customer_id”,然后加入“pm1ticket”表。
    • 在使用它的列之前总是先连接表
    • 您可以为答案投票,然后对其他人有所帮助
    猜你喜欢
    • 2011-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-23
    • 2013-01-26
    • 2020-04-25
    相关资源
    最近更新 更多