phpMyAdmin
 sql >> база данни >  >> Database Tools >> phpMyAdmin

SQL израз за показване в група от определена колона

Първоначално ето какво измислих:

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

Резултат:

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

Резултат в Fiddle .

Както можете да видите Вечерното полесъдържа Фарис два пъти . Затова използвах две заявки и се присъединих към тези резултати. Като това:

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

Резултат:

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

Вижте резултата в SQL Fiddle .

Обяснение:

Избираме сутрин и вечер поотделно, след което свързваме тези две таблици с дата и ден. И накрая резултатът се извлича от обединената заявка.

GROUP_CONCAT се използва за групиране на полета с една и съща дата и ден. Можем да използваме SEPARATOR ' ' за пространство като разделител. Ако премахнете SEPARATOR ' ' , ще получите резултата, разделен със запетая(,).

COALESCE се използва за замяна на нулеви стойности с празен низ ('' ).



  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. Помощ за импортиране на файл на Excel в MySQL с помощта на phpMyAdmin

  2. Неразпознат тип изявление. (близо до WI на позиция 0)

  3. MySQL:Как да настроя първичния ключ на phpMyAdmin?

  4. Не може да започне сесия без грешки в phpMyAdmin

  5. #2002 - Сървърът не отговаря (или сокетът на локалния MySQL сървър не е конфигуриран правилно)