sql >> Databáze >  >> RDS >> Mysql

mysql :Nezobrazovat duplicitní výsledek na SELECT

Bohužel musíte provést dva nejvyšší dotazy dvakrát, abyste je odstranili z nižšího dotazu:

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. Jak nainstalovat rozšíření Postgres při vytváření databáze?

  2. Použití SSIS k dotazu ADO .NET zdrojového dotazu předávání parametrů ze serveru SQL Server

  3. Stránka „Pokročilé vyhledávání“ v PHP/ MySql

  4. Jak napsat připravený příkaz v PHP pro dotaz SELECT BETWEEN mysql mezi dvěma Date/Times?