SQL QUERY, как выбрать столбец по другим ограничениям

Я использую рюкзак-контроллер для PHP-Laravel.

С crudController, предоставленным рюкзаком (библиотекой), все, что мне нужно сделать - это запросить его с помощью запросов Laravel Eloquent (также возможен необработанный sql).

Тогда библиотека Backpack автоматически распечатайте список для меня.

Но я борюсь с этим сложным вопросом.

Дело в том, что у меня 4 столбца,

session_id | column_id | batch | data
10         | 1         | 1     | data1
10         | 2         | 1     | data2
10         | 1         | 2     | data1*
10         | 2         | 2     | data2*

Допустим, это данные, которые у меня есть. Я хочу отобразить эту группировку по идентификатору сеанса, партии, и упорядочивание в строке по column_id.

поэтому запрос результата будет примерно таким

1 :  data1   data2
2 : data1*  data2*

Если есть третья партия с данными

session_id | column_id | batch | data
10         | 1         | 3     | data1**

Тогда он появится в третьей партии как

3 : data1**

Я могу сделать это с помощью кода, но не с помощью sql.

Буду благодарен за любой совет.

так что нет SQL Query?

Akam 08.12.2018 23:05

@ Акам Вот о чем я спрашиваю

Jinmo Chong 08.12.2018 23:07

То, что вы спрашиваете, похоже на PIVOT в sql server. К сожалению, в mysql нет функции поворота. Но приблизительное решение можно найти с помощью GROUP_CONCAT

isuru89 09.12.2018 02:58
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
132
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это похоже на ВРАЩАТЬСЯ на сервере sql. К сожалению, в mysql нет этой функции.

Я могу дать вам приблизительный необработанный запрос mysql с использованием GROUP_CONCAT. Предполагая, что имя вашей таблицы - mytable.

SELECT 
   session_id, 
   batch, 
   GROUP_CONCAT(data ORDER BY column_id SEPARATOR ', ') AS dataList 
FROM mytable
GROUP BY session_id, batch

Затем вы можете разделить столбец dataList с псевдонимом, используя заданный разделитель (здесь я использовал ,). Вы можете изменить разделитель в соответствии с данными, содержащимися в столбце data, по своему желанию.

Надеюсь, это поможет вам.

Другие вопросы по теме