Mysql 加入多个条件

Mysql 加入多个条件,mysql,join,conditional-statements,Mysql,Join,Conditional Statements,我的整个查询有点复杂,所以我将尝试显示您需要了解我的问题的内容,我正在从数据库中获取票证,它显示标题、创建者、负责票证的人员以及最后一个更新程序,对于创建者和负责人,我在tickets\u用户中找到了他们的ID。用户ID及其类型1或2取决于他们是票据的创建者还是负责人,对于标题和票证本身的所有信息,该表被命名为ticketsnow,对于用户的ID、名称等,它是users 因此,我的查询如下所示: SELECT tickets.id, tickets.name, GROUP_CON

我的整个查询有点复杂,所以我将尝试显示您需要了解我的问题的内容,我正在从数据库中获取票证,它显示标题、创建者、负责票证的人员以及最后一个更新程序,对于创建者和负责人,我在
tickets\u用户中找到了他们的
ID
。用户ID
及其类型1或2取决于他们是票据的创建者还是负责人,对于标题和票证本身的所有信息,该表被命名为
tickets
now,对于用户的ID、名称等,它是
users

因此,我的查询如下所示:

SELECT
tickets.id,
    tickets.name,
    GROUP_CONCAT(
            CASE WHEN tickets_users.type = 1 THEN 
                        CONCAT(users.firstname, ' ', users.realname)
            END) AS creator,
    GROUP_CONCAT(
            CASE WHEN tickets_users.type = 1 THEN 
                        CONCAT(tickets_users.users_id)
            END) AS creator_id,
    GROUP_CONCAT(
            CASE WHEN tickets_users.type = 2 THEN 
                        CONCAT(users.firstname, ' ', users.realname)
            END) AS in_charge,
    GROUP_CONCAT(
            CASE WHEN tickets_users.type = 2 THEN 
                        CONCAT(tickets_users.users_id)
            END) AS in_charge_id,
    tickets.date,
    tickets.priority,
    tickets.date_mod,
    tickets.status,
    tickets.users_id_lastupdater,
MAX(CASE WHEN tickets.users_id_lastupdater = users.id
         THEN CONCAT(users.firstname, ' ', users.realname) 
    END) AS last_updater,
tickets.content
FROM
    tickets
    JOIN tickets_users ON tickets_users.tickets_id = tickets.id
    JOIN users ON users.id = tickets_users.users_id
    WHERE tickets.id = ?");
我的问题是,在users.id=tickets\u users.users\u id这对负责人和创建者很有效,但是如果没有负责人回复或修改票据,他将不会出现在“last modified by”中,因为
last\u updater
id在表
tickets
中。 我尝试在(users.id=tickets\u users.users\u id和,glpi\u tickets.users\u id\u lastupdater)上加入
加入用户,但没有成功。有什么想法吗


您需要将测试
和users.id=tickets\u users.users\u id
添加到 您的
案例
陈述


成功了,谢谢

在users.id中(tickets\u users.users\u id,tickets.last\u updater)
几乎可以工作了,它显示了last\u updater,即使他不是负责人或创建者,但现在出于某种原因,它正在将last\u updater添加到创建者或负责人中,有没有办法只影响最后一个更新程序?您需要将测试
和users.id=tickets\u users.users\u id
添加到您的
CASE
语句中。一切正常谢谢您的帮助
ON users.id IN (tickets_users.users_id, tickets.last_updater)