phpMyAdmin
 sql >> Baza danych >  >> Database Tools >> phpMyAdmin

Instrukcja SQL do wyświetlenia w grupie określonej kolumny

Na początku wymyśliłem to:

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

Wynik:

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

Wynik w Skrzypce .

Jak widać Wieczorne pole zawiera dwukrotnie Faris . Użyłem więc dwóch zapytań i połączyłem te wyniki. Tak:

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

Wynik:

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

Zobacz wynik w SQL Fiddle .

Wyjaśnienie:

Osobno wybieramy na Poranek i Wieczór, następnie łączymy te dwa stoliki z datą i dniem. I wreszcie wynik jest pobierany z połączonego zapytania.

GROUP_CONCAT służy do grupowania pól o tej samej dacie i dniu. Możemy użyć SEPARATOR ' ' dla przestrzeni jako separator. Jeśli usuniesz SEPARATOR ' ' , otrzymasz wynik oddzielony przecinkami(,).

COALESCE służy do zastępowania wartości null pustym ciągiem ('' ).



  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. MySQL/phpMyAdmin zawiesza się od DELIMITER

  2. Brak rozszerzenia mbstring. Sprawdź swoją konfigurację PHP

  3. ZAPYTANIE SQL NA WIELU TABELACH

  4. Jak sprawdzić i naprawić bazę danych w phpMyAdmin

  5. Domyślna data i godzina MySQL przez phpmyadmin