Thay vì lọc trên một lưới sử dụng chính xác, bạn nên kiểm tra xem người dùng có liên quan đến vấn đề hay không, như sau:
select
t.title,
group_concat(
case when tu.type = 1 then
concat(u.firstname, ' ', u.lastname)
end) as creator,
t.priority,
t.date,
group_concat(
case when tu.type = 2 then
concat(u.firstname, ' ', u.lastname)
end SEPARATOR ' - ') as users
from
tickets t
inner join tickets_users tu on tu.ticketid = t.id
inner join users u on u.id = tu.userid
where
exists (
select
'x'
from
tickets_users tu2
where
tu2.ticketid = t.id and
tu2.userid = <youruserid> and
tu2.type = 1)
group by
t.id;
Đối với <youruserid>
bạn có thể điền vào id người dùng mà bạn muốn. Truy vấn này sẽ trả về tất cả các vấn đề được báo cáo bởi người dùng đó (loại =1). Nhưng đối với tất cả những vấn đề đó, tất cả người dùng có liên quan vẫn được trả lại, vì vậy kết quả truy vấn của bạn vẫn hoàn chỉnh.