Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cần trợ giúp lại về cách tham gia bảng

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.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL 5.6 InnoDB Tìm kiếm toàn văn bản

  2. chuyển tệp sql cho nodejs để thực thi toàn bộ

  3. Cách sử dụng tên cột khi tạo đối tượng JSON, Python

  4. Lưu trữ HTML trong MySQL:blob hay text?

  5. Dữ liệu BLOB được trả về trong MySQL bằng AES_DECRYPT với mệnh đề ORDER