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

kết hợp tất cả hai bảng nhưng số cột khác nhau

Chỉ cần thực hiện tổng hợp trước khi kết hợp union all :

select sum(cnt) as total
FROM ((SELECT count(*) as cnt
       FROM database1.orders
       WHERE number LIKE '11111111111111111'
      )
      UNION ALL
      (SELECT count(*) as cnt
       FROM database2.orders
       WHERE number LIKE '11111111111111111'
      )
     ) t;

Lưu ý rằng tôi đã thay đổi dấu phân cách chuỗi thành một dấu nháy đơn thay vì dấu nháy kép. Cách tốt là sử dụng dấu ngoặc kép cho các hằng số chuỗi và ngày tháng (và không có gì khác).

Nhân tiện, bạn cũng có thể thực hiện việc này bằng cách sử dụng phép nối:

select o1.cnt1, o2.cnt1, (o1.cnt1 + o2.cnt1) as total
FROM (SELECT count(*) as cnt1
      FROM database1.orders
      WHERE number LIKE '11111111111111111'
     ) o1 cross join
     (SELECT count(*) as cnt2
      FROM database2.orders
      WHERE number LIKE '11111111111111111'
     ) o2;

Điều này giúp việc lấy các số lượng riêng lẻ cho hai cơ sở dữ liệu trở nên dễ dàng hơn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bỏ qua kết quả rỗng trong các truy vấn MySQL JOIN

  2. MySQL - làm thế nào để sử dụng các ký tự đại diện trong mệnh đề WHERE cho chính các tên cột?

  3. Làm cách nào để ánh xạ một ổ cắm unix cục bộ với một ổ cắm inet?

  4. Cách trừ số ngày trong MySQL

  5. MySQL trả về bản ghi đầu tiên và cuối cùng cho các kết quả giống hệt nhau liên tiếp