Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Potrzebujesz ponownie pomocy przy dołączaniu do stołów

Zamiast filtrować według dokładnego identyfikatora użytkownika, powinieneś sprawdzić, czy użytkownik jest powiązany z problemem, na przykład:

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;

Dla <youruserid> możesz wpisać żądany identyfikator użytkownika. To zapytanie zwróci wszystkie problemy zgłoszone przez tego użytkownika (typ =1). Ale w przypadku wszystkich tych problemów nadal zwracani są wszyscy powiązani użytkownicy, więc wynik zapytania jest nadal kompletny.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. importuj dane mysql do hdfs(hadoop 2.4.1) za pomocą sqoop(1.4.5)

  2. mysql LEFT join dla maksymalnej wartości prawej tabeli

  3. Czy tabele bazy danych systemu MySQL można przekonwertować na InnoDB?

  4. Pobierz wszystkie dane POST i wyślij e-mailem

  5. java.lang.ClassNotFoundException:com.mysql.jdbc.Driver (maven + jboss)