Mysql
 sql >> база данни >  >> RDS >> Mysql

mysql:Не показвай дублиран резултат при SELECT

За съжаление, трябва да направите двете най-добри заявки два пъти, за да ги премахнете от долната заявка:

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. Изпълнете заявка въз основа на множество квадратчета за отметка

  2. SQL Съхранена процедура - променливата е твърде кратка

  3. Logstash не чете нови записи от MySQL

  4. MySQL:Зареждане на множество файлове в таблица

  5. Как мога да използвам TCPDF, за да направя 2x6 листа с етикети, които включват 2D баркодове, БЕЗ да използвам колони ИЛИ класове на трети страни?