Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

mysql :Jangan tampilkan hasil duplikat pada SELECT

Sayangnya, Anda harus melakukan dua kueri teratas dua kali untuk menghapusnya dari kueri bawah:

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. Mengapa kueri multi-kolom saya jauh lebih lambat daripada kueri satu kolom yang sesuai, bahkan dengan indeks multi-kolom?

  2. Kamera Android untuk mengambil banyak foto

  3. Pulihkan MySQL DB dengan karakter Unicode (Arab dan Kurdi) dalam format .gz

  4. apa metode terbaik untuk membuat sub kategori tanpa batas?

  5. Transaksi MySQL:komit dan kembalikan