sql >> Databáze >  >> RDS >> Mysql

sjednotit všechny dvě tabulky, ale rozdílné číslo sloupce

Stačí provést agregaci před 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;

Poznámka:Změnil jsem oddělovač řetězce tak, aby byl jednoduchou uvozovkou, nikoli dvojitou uvozovkou. Je dobrým zvykem používat jednoduché uvozovky pro řetězcové a datové konstanty (a nic jiného).

Mimochodem, můžete to udělat také pomocí spojení:

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;

To usnadňuje získání jednotlivých počtů pro dvě databáze.



  1. Vyberte z n-tého záznamu a tak dále v MySQL

  2. Typy kurzoru SQL Server – pouze vpřed statický kurzor | Kurz SQL Server / Kurz TSQL

  3. Výkonný způsob, jak vypsat cizí klíče pro tabulku MySQL?

  4. Nelze spustit Insert and Select LAST_INSERT_ID() ve stejném dotazu?