Mysql
 sql >> Baza danych >  >> RDS >> Mysql

połącz wszystkie dwie tabele, ale liczbę różnic w kolumnie

Po prostu wykonaj agregację przed 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;

Uwaga Zmieniłem ogranicznik ciągu na pojedynczy cudzysłów, a nie podwójny. Dobrą praktyką jest używanie pojedynczych cudzysłowów dla stałych łańcuchowych i dat (i nic więcej).

Nawiasem mówiąc, możesz to zrobić również za pomocą złączenia:

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;

Ułatwia to uzyskanie indywidualnych zliczeń dla dwóch baz danych.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wyzwalacz między bazami danych w Mysql

  2. Jak reprezentować skategoryzowaną relację bazy danych wiele-do-wielu, w której kategorie są specyficzne dla jednej strony relacji?

  3. Policz do liczby x - sql

  4. MYSQL :Kopiuj dane tabel z 2 baz danych. Obie bazy danych znajdują się na różnych serwerach (firmy hostingowe)

  5. Jak zaimportować ten plik danych do tabeli Mysql?