Соедините разные значения в строке mysql

Ответ, помеченный как дубликат, не отвечает на главный вопрос, а просто отвечает на вопрос, на который я сам ответил при описании проблемы.

У меня есть две таблицы:

TableInit
+----------+------------------------+---------------------------+
| id_video | titulo                 | desc                      |
+----------+------------------------+---------------------------+
| 23234546 | Inside the White House | As President Donald Trump |
+----------+------------------------+---------------------------+

AND 
TableName
+---------+----------+---------------+--------------+
| meta_id | video_id | upload_key    | upload_value |
+---------+----------+---------------+--------------+
| 64136   | 23234546 | host          | cnn          |
+---------+----------+---------------+--------------+
| 64137   | 23234546 | send          | 0            |
+---------+----------+---------------+--------------+
| 64138   | 23234546 | upload_id     | sHGN-tSNvJYs |
+---------+----------+---------------+--------------+

Я хотел бы вернуть что-то подобное после запроса

array(1){[0]=>
  array(15) {
    ["id_video"]=>
    string(7) "23234546"
    ["titulo"]=>
    string(56) "Inside the White House"
    ["desc"]=>
    string(96) "As President Donald Trump."

    array(6){
    ["meta_id"]=>
    string(5) "64136"
    ["video_id"]=>
    string(7) "23234546"
    ["host"]=> 
    string(3) "cnn"
    ["send"]=>
    string(1) "0"
    ["upload_id"] => 'sHGN-tSNvJYs'
    }
  }

 }

или вот так

array(1){[0]=>
  array(15) {
    ["id_video"]=>
    string(7) "23234546"
    ["titulo"]=>
    string(56) "Inside the White House"
    ["desc"]=>
    string(96) "As President Donald Trump."
    ["meta_id"]=>
    string(5) "64136"
    ["video_id"]=>
    string(7) "23234546"
    ["host"]=> 
    string(3) "cnn"
    ["send"]=>
    string(1) "0"
    ["upload_id"] => 'sHGN-tSNvJYs'

  }

 }

поэтому я сделал этот запрос (это решение правильное? или у него есть лучший вариант)

SELECT v.*,  if ( up.upload_key = 'send', up.upload_value, 0 ) AS send,  
    if ( up.upload_key = 'host', up.upload_value, 0 ) AS host, 
     if ( up.upload_key = 'upload_id', up.upload_value, 0 ) AS upload_id 
FROM TableInit v JOIN TableName up ON up.video_id =  v.id_video;

Большая проблема в том, что это приводит ко мне:

| id_video |                 titulo |                      desc | send | host |    upload_id |
|----------|------------------------|---------------------------|------|------|--------------|
| 23234546 | Inside the White House | As President Donald Trump |    0 |  cnn |            0 |
| 23234546 | Inside the White House | As President Donald Trump |    0 |    0 | sHGN-tSNvJYs |
| 23234546 | Inside the White House | As President Donald Trump |    0 |    0 |            0 |

он повторяет значения

если я использую GROUP BY, возвращаются только значения первой строки

| id_video |                 titulo |                      desc | send | host | upload_id |
|----------|------------------------|---------------------------|------|------|-----------|
| 23234546 | Inside the White House | As President Donald Trump |    0 |  cnn |         0 |

Когда результат, на который я надеюсь, - это соединение строк

| id_video |                 titulo |                      desc | send | host |    upload_id |
|----------|------------------------|---------------------------|------|------|--------------|
| 23234546 | Inside the White House | As President Donald Trump |    0 |  cnn | sHGN-tSNvJYs |

Как я могу получить ожидаемый результат?

Скрипт SQLСкрипт SQL

Вы показываете нам ожидаемый вывод Laravel, хотя на самом деле здесь может быть полезнее увидеть ожидаемый табличный вывод MySQL. Вы можете включить это? На мой взгляд, это то, что вы должны обрабатывать на уровне представления PHP.

Tim Biegeleisen 28.01.2019 16:41

Я не использую Laravel и в примере ожидаемая отдача от MYSQL

Bruno Andrade 28.01.2019 16:46

И обратите внимание, что 46 работает так же хорошо, как идентификатор образца 23234546.

Strawberry 28.01.2019 16:46

Посмотрите, что у вас есть после этой части: «когда результатом, на который я надеюсь, будет соединение линий»

Bruno Andrade 28.01.2019 16:46
Автоматический разворот.
Rick James 29.01.2019 21:41
Стоит ли изучать 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
5
30
0

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