sql >> Databasteknik >  >> RDS >> Mysql

mysql :Visa inte dubblettresultat på SELECT

Tyvärr måste du göra de två översta frågorna två gånger för att ta bort dem från den nedre frågan:

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. Hur uppdaterar man mysql med python där fält och poster kommer från en ordbok?

  2. php mysql Connect Database från en annan server

  3. Hur får man ID för en fråga som ställdes för länge sedan och skickar den till en annan tabell?

  4. Hur man byter namn på en tabell i Microsoft Access