Home » Delphi » Database, Tips & Tricks » MySQL: Select SUM() From Multiple Tables Using Single Query

MySQL: Select SUM() From Multiple Tables Using Single Query

Print Friendly



Heidi SQL ScriptIni berdasarkan pertanyaan dari seorang Delphier Indonesia, bagaimana melakukan select SUM(), COUNT() atau MAX() dari beberapa tabel di MySQL sekaligus? Apakah menggunakan TZSQLProcessor (dia menggunakan Delphi + Zeos + MySQL) ataukah TZQuery saja?

Tentu ada anggapan, bahwa TZSQLProcessor akan menjawab pertanyaan ini, karena dapat menjalankan rentetan beberapa query sekaligus. Memang bisa, namun repot dan berbelit-belit. Saya sendiri menggunakan cara yang lebih sederhana saja menggunakan TZQuery biasa. Query SQL-nya menggunakan sub-select atau sub-query.

Agar tidak makan waktu dalam membuat database, kita akan gunakan saja database bawaan MySQL, yaitu database “mysql” yang pasti ada di setiap instalasi MySQL Server. Sebagai tool fornt-end, saya menggunakan HeidiSQL.

Jalankan HeidiSQL dan login ke MySQL Server. Kemudian pilih database “mysql”. Dalam database ini sudah ada tabel-tabel sistem bawaan MySQL Server. Query yang akan saya contohkan adalah mendapatkan jumlah baris masing-masing tabel ini dengan fungsi agregat COUNT().

Tentu tidak semua tabel akan kita ambil. Hanya beberapa saja yang mewakili tujuan kita:

  • general_log
  • help_category
  • help_keyword
  • help_relation
  • help_topic
  • host

Kini pindah ke tab query (di HeidiSQL) dan buat query seperti berikut:

select count(*) from `help_keyword`;

Query di atas akan menampilkan jumlah baris dari tabel `help_keyword`.
HeidiSQL - MySQL Select Count()

Sekarang, untuk mendapatkan hasil di atas dari beberapa tabel sekaligus, kita buat kombinasinya seperti berikut:

select
 (select count(*) from `help_keyword`) as jumlah_1,
 (select count(*) from `general_log`) as jumlah_2,
 (select count(*) from `help_category`) as jumlah_3,
 (select count(*) from `help_keyword`) as jumlah_4,
 (select count(*) from `help_relation`) as jumlah_5,
 (select count(*) from `help_topic`) as jumlah_6,
 (select count(*) from `host`) as jumlah_7;

Nah, dari satu query (tentunya dengan beberapa sub-query di dalamnya) di atas, kita akan mendapatkan hasil:

HeidiSQL - MySQL SubQuery From Multiple Tables

Semoga saja tulisan singkat ini bermanfaat :)


Incoming search terms:

 

Comments

comments

Powered by Facebook Comments

4 Responses to MySQL: Select SUM() From Multiple Tables Using Single Query

  1. master mau tanya nie.misal aku punya database yang isinya jadwal pelajaran. pada tabel database itu ada field hari,berisi hari senin sampai sabtu.
    yang mau kutanyakan, misal hari senin maka otomatis yang ditampilkan pada database tersebut hari senin itu bagaimana ya?(menyesuaikan hari pada PC). databasenya pake mysql.
    mohon penjelasannya,terima kasih..

       New Post

    • pake get_timestamp dengan ADOQuery gan
      gak usah pake field atau DB kecuali diperlukan Record

      ni samplenya

      ADOquery kita ganti nama (Getdate)

      di Getdate (ADOQuery) isikan Query ini=====>>>

      //select CURRENT_TIMESTAMP as TGLServer

      lalu activekan fieldnya TGLServer dengan dblclick pada adoquery tadi dan click kanan addallfield

      setelah berhasil

      pada programnya Misal pake Tlabel

      Jika tanpa Modul

      =========>untuk refresh data===========>
      //Getdate.active:=false;
      //Getdate.active:=true;

      Jika yang mau ditampilkan hanya harinya aja

      //label1.caption:=formatdatetime(‘DDDD’,getdateTGLServer.value);

      ========>hasilnya Longdate(senin-minngu)

      ubahlah pada string ‘DDDD’/'DD’/'MMMM’

         New Post

  2. sangat ngebantu skali ni gan ,,,salam buat para master delphi niy,,,ane gabung
    sukses dan maju terus pantang mundur dan tak pernah kecebur ckckckck

       New Post

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>