sql >> Database >  >> RDS >> Mysql

Opnieuw hulp nodig over het samenvoegen van tabellen

In plaats van te filteren op een exacte gebruikers-ID, moet u als volgt controleren of de gebruiker gerelateerd is aan het probleem:

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;

Voor <youruserid> u kunt de gewenste gebruikers-ID invullen. Deze query retourneert alle problemen die door die gebruiker zijn gemeld (type =1). Maar voor al deze problemen worden nog steeds alle gerelateerde gebruikers geretourneerd, dus uw zoekresultaat is nog steeds compleet.




  1. MySQL - SELECT WHERE field IN (subquery) - Extreem traag waarom?

  2. Hoe u 2 update-query's in één transactie uitvoert met JDBC

  3. SQL Selecteren van gegevens uit drie tabellen gerelateerd

  4. Vind alle zoekopdrachten die een bepaalde tabel gebruiken