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

обединяване на всички две таблици, но различен номер на колона

Просто направете агрегацията преди 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;

Забележете, че промених разделителя на низа да бъде единична кавичка, а не двойна кавичка. Добра практика е да използвате единични кавички за низове и константи за дата (и нищо друго).

Между другото, можете да направите това и с помощта на присъединяване:

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;

Това улеснява получаването на индивидуалните данни за двете бази данни.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP - Грешка с отказан достъп до MySQL - Работи в други програми

  2. динамично рисуване на полилинии в googlemaps с помощта на php/mysql

  3. Използване на роли, нови в MySQL 8

  4. Извикване на съхранена процедура, когато името на процедурата е в променлива в mysql

  5. Каква е целта на използването на mysql_secure_installation?