phpMyAdmin
 sql >> Teknologi Basis Data >  >> Database Tools >> phpMyAdmin

Pernyataan SQL untuk ditampilkan dalam grup kolom tertentu

Awalnya, ini yang saya buat:

SELECT s.date, s.day, COALESCE(GROUP_CONCAT(bm.worker SEPARATOR ' '),'') as Morning,COALESCE(GROUP_CONCAT(be.worker SEPARATOR ' '),'') as Evening
FROM schedule s LEFT JOIN 
block bm ON s.id = bm.schedule_id AND bm.shift=1 LEFT JOIN 
block be ON s.id = be.schedule_id AND be.shift=2
GROUP BY s.date,s.day

Hasil:

DATE        DAY       MORNING       EVENING
22/09/2014  Monday    Ahmad Abdul   Faris Faris
23/09/2014  Tuesday                 Iqbal

Hasilkan Fiddle .

Seperti yang Anda lihat, bidang Evening berisi Faris dua kali . Jadi saya menggunakan dua kueri dan menggabungkan hasil tersebut. Seperti ini:

SELECT T1.date,T1.day,COALESCE(T1.Morning,'') as Morning,COALESCE(T2.Evening,'') as Evening FROM
    (SELECT s.date, s.day, GROUP_CONCAT(bm.worker SEPARATOR ' ') as Morning
     FROM schedule s LEFT JOIN 
     block bm ON s.id = bm.schedule_id AND bm.shift=1
     GROUP BY s.date,s.day) T1
  JOIN
    (SELECT s.date, s.day,GROUP_CONCAT(be.worker SEPARATOR ' ') as Evening
     FROM schedule s LEFT JOIN 
     block be ON s.id = be.schedule_id AND be.shift=2
     GROUP BY s.date,s.day) T2 
  ON T1.Date=T2.Date AND T1.Day=T2.Day

Hasil:

DATE        DAY      MORNING        EVENING
22/09/2014  Monday   Ahmad Abdul    Faris
23/09/2014  Tuesday                 Iqbal

Lihat hasil di SQL Fiddle .

Penjelasan:

Kami memilih untuk Pagi dan Malam secara terpisah, lalu kami menggabungkan dua tabel ini dengan tanggal dan hari. Dan akhirnya hasil diambil dari kueri yang digabungkan.

GROUP_CONCAT digunakan untuk mengelompokkan field yang memiliki tanggal dan hari yang sama. Kita dapat menggunakan SEPARATOR ' ' untuk ruang sebagai pemisah. Jika Anda menghapus SEPARATOR ' ' , Anda akan mendapatkan hasil yang dipisahkan dengan koma().

COALESCE digunakan untuk mengganti nilai null dengan string kosong('' ).



  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. phpmyadmin - kesalahan 2002 - di Mac

  2. Versi MySQL berbeda di phpmyadmin

  3. phpmyadmin mysql memicu kesalahan sintaksis

  4. (html) editor wysiwyg untuk bidang TEXT di phpmyadmin

  5. kesalahan penyimpanan konfigurasi phpMyAdmin