sql >> Databasteknik >  >> RDS >> Mysql

union alla två tabell men diff nummer kolumn

Gör bara aggregeringen före 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;

Observera att jag ändrade strängavgränsaren till att vara ett enkelt citattecken snarare än ett dubbelt citattecken. Det är bra att använda enkla citattecken för sträng- och datumkonstanter (och inget annat).

Förresten, du kan också göra detta med en 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;

Detta gör det lättare att få de individuella siffrorna för de två databaserna.



  1. sql-server Bulk infoga csv med data med kommatecken

  2. Extrahera primärnyckeln från MySQL i PHP

  3. Samma applikation, olika databaser:Entity framework 6.X + MySQL + SQL Server

  4. Bästa dataarkivet för miljarder rader