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

mysql:Không hiển thị kết quả trùng lặp trên SELECT

Thật không may, bạn phải thực hiện hai truy vấn hàng đầu hai lần để xóa chúng khỏi truy vấn thấp hơn:

SELECT p.*, 1 as enabled
    FROM member_permissions mp
    JOIN permissions p ON p.permission_id = mp.permission_id
    WHERE member_id = 1
UNION
    SELECT pgp.*, 1 as enabled
    FROM member_permissions mp
    JOIN permission_link pl ON pl.permission_group_id = mp.permission_group_id
    JOIN permissions pgp ON pgp.permission_id = pl.permission_id
    WHERE member_id = 1
UNION
    SELECT *, 0 as enabled
    FROM permissions p where p.permission_id not in (
      SELECT p.permission_id
          FROM member_permissions mp
          JOIN permissions p ON p.permission_id = mp.permission_id
          WHERE member_id = 1
      UNION ALL
      SELECT pgp.permission_id
          FROM member_permissions mp
          JOIN permission_link pl ON pl.permission_group_id = mp.permission_group_id
          JOIN permissions pgp ON pgp.permission_id = pl.permission_id
          WHERE member_id = 1
   )


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Câu lệnh chuẩn bị của MySql Connector chỉ chuyển 64 byte

  2. Làm thế nào để tạo một hình ảnh docker với cơ sở dữ liệu được phổ biến cho các bài kiểm tra tự động?

  3. Tạo Bảng MySQl Tập lệnh Cập nhật

  4. Tính tổng thời lượng trong MySQL

  5. Mysql - SQL động không được phép trong trình kích hoạt