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

mysql :Nie pokazuj zduplikowanych wyników na SELECT

Niestety, musisz dwukrotnie wykonać dwa najwyższe zapytania, aby usunąć je z dolnego zapytania:

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. Zapytanie, aby znaleźć klienta z największą liczbą łącznych zakupów

  2. mysqli_fetch_array błąd, nawet gdy zapytanie jest poprawne; uruchamianie całkowitego eksportu jako wartości NULL

  3. Nieudane użycie transakcji w Quill do WSTAWIANIA obiektów relacyjnych jeden-do-wielu

  4. WYBIERZ i wypisz dzieci i rodziców

  5. Wybierz wiele identyfikatorów z tabeli