MySQL запрос не дает никакого результата с Group By на дату - PullRequest
0 голосов
/ 17 марта 2019

Я создаю дневник бронирования, в котором мне нужно отобразить информацию о клиенте, статус бронирования и описание в дневнике бронирования. База данных похожа на

id | BookingRef | CusotmerName | Status | InDate | InTime | BookingDate | Details |

Я хочу отображать информацию в порядке возрастания времени, но нужно сгруппировать ее по дате. Например, если запись похожа на

id | BookingRef | CusotmerName | Status | InDate | InTime | BookingDate | Details |
--------------------------------------------------------------------------------------
1 | 4656AB | John Smith | Open | 17-03-2019 | 08:30 | 16-03-2019 14:30 | Want to check my glasses    
2 | 4554AB | Rick Ronald | Open | 17-03-2019 |08:55 | 16-03-2019 14:30 | Want to check my glasses    
3 | 4434AB | Serra Willa | Open | 17-03-2019 |10:05 | 16-03-2019 14:30 | Want to check my glasses    
4 | 4954AB | Jay Banker | Open | 18-03-2019 |09:25 | 16-03-2019 14:30 | Want to check my glasses    
5 | 4154AB | Damien Baker | Open | 19-03-2019 |11:55 | 16-03-2019 14:30 | Want to check my glasses

Эти данные должны отображаться как

17-03-2019    
John Smith | 08:30 | Want to check my glasses | Open    
Rick Ronald |08:55 | Want to check my glasses | Open    
Serra Willa |10:05 | Want to check my glasses | Open    
18-03-2019
Jay Banker | 09:25 | Want to check my glasses | Open    
19-03-2019    
Damien Baker |11:55 | Want to check my glasses | Open

Мой запрос извлекает данные, но мне нужно сгруппировать их с InDate, поэтому я использовал:

select *
from appointments ASC InDate; 

Это генерирует ниже ошибку:

select *
from appointments
GROUP BY InDate; 

ошибка:

mysqli_query (): (42000/1055): выражение №1 списка SELECT отсутствует Предложение GROUP BY и содержит неагрегированный столбец appdb.appointments.id, который функционально не зависит от столбцов в предложении GROUP BY; это несовместимо с sql_mode = only_full_group_by

Есть ли какие-либо предложения, как я могу добиться того, чего хочу в результате?

1 Ответ

0 голосов
/ 17 марта 2019

Это слишком долго для комментария.

Набор результатов SQL - как таблица SQL - состоит из столбцов и строк. Каждая строка имеет один и тот же набор столбцов. Это очень важный принцип при работе с SQL.

Кажется, что в вашем желаемом наборе результатов есть строки двух типов.Один с одной датой, а другой с кучей столбцов.В такой структуре вы не можете вернуть это с помощью SQL.Это просто за пределами того, что делает язык.Скажем, как использование Python для очистки вашей ванной комнаты.

Вы могли бы приблизиться, преобразовав каждую строку в одну строку или поместив дату в столбец CustomerName и оставив остатокстолбцы пустые.Тем не менее, это действительно хаки.И лучший способ получить данные в нужном вам формате - это сделать это на уровне приложений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...