sql >> Database >  >> RDS >> Mysql

unie alle twee tabellen maar diff aantal kolommen

Doe gewoon de aggregatie vóór de 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;

Opmerking Ik heb het tekenreeksscheidingsteken gewijzigd in een enkel aanhalingsteken in plaats van een dubbel aanhalingsteken. Het is een goede gewoonte om enkele aanhalingstekens te gebruiken voor string- en datumconstanten (en niets anders).

Je kunt dit trouwens ook doen met een join:

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;

Dit maakt het gemakkelijker om de individuele tellingen voor de twee databases te krijgen.



  1. Verbinding maken met MySQL-database op lokaal netwerk

  2. Serverloos framework met Node MySQL

  3. ORA-01843:geen geldige maand bij het invoegen van een datum in orakel

  4. mysql:verwijder rijen met herhaalde waarden met voorwaarde (herhaalde kolommen)