Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

UNION 2 Truy vấn chọn với các cột được tính toán

Tôi nghĩ ý tưởng chính là có được danh sách các máy in mà bạn muốn:

select PrinterGUID
from ((select cm.PrinterGUID
       from computermapping cm
       where cm.ComputerGUID = '5bec3779-b002-46ba-97c4-19158c13001f'
      ) union -- to remove duplicates
      (select PrinterGUID
       from usermapping um
       where um.UserGUID = 'd3cf699b-8d71-4dbc-92f3-402950042054'
      )
     ) p;

Sau đó, bạn có thể sử dụng exists để xem đây có phải là các giá trị mặc định hay không:

select p.PrinterGUID,
       (exists (select 1
                from computerdefaultprinter cdp
                where cdp.PrinterGUID = p.PrinterGUID and
                      cdp.ComputerGUID = '5bec3779-b002-46ba-97c4-19158c13001f'
               )
       ) as is_computer_default,
       (exists (select 1
                from userdefaultprinter udp
                where udp.PrinterGUID = p.PrinterGUID AND
                      udp.UserGUID = 'd3cf699b-8d71-4dbc-92f3-402950042054'
               )
      ) as is_user_default
from ((select cm.PrinterGUID
       from computermapping cm
       where cm.ComputerGUID = '5bec3779-b002-46ba-97c4-19158c13001f'
      ) union -- to remove duplicates
      (select PrinterGUID
       from usermapping um
       where um.UserGUID = 'd3cf699b-8d71-4dbc-92f3-402950042054'
      )
     ) p;

Tại đây là một db <> fiddle.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kết nối mã nguồn PHP và gửi biểu mẫu đến Cơ sở dữ liệu MySQL

  2. Thay đổi từ php-mysqld thành php-mysqlnd

  3. Lặp lại n lần mà không cần sử dụng một thủ tục được lưu trữ

  4. Di chuyển và sao lưu cơ sở dữ liệu MySQL lớn

  5. Thêm nhiều mục nhập hộp văn bản vào cơ sở dữ liệu mysql