Как выбрать 2 значения из 2-х параметров и вывести их на 1 строке?

Ссылка скопирована
1 ответ

Доброго времени суток, как можно получить в 1 запросе 2 параметра и вывести их значения на 1 строке?

SELECT user.id, user.nickname, stat.param, stat.value FROM saved_users_stats AS stat JOIN saved_users AS user ON userId = id WHERE param = "[difficulty]chernobylhard [mode]PVE [stat]player_sessions_won" ORDER BY value DESC LIMIT 50

SELECT user.id, user.nickname, stat.param, stat.value FROM saved_users_stats AS stat JOIN saved_users AS user ON userId = id WHERE param = "[difficulty]chernobylhard [mode]PVE [stat]player_sessions_won" ORDER BY value DESC LIMIT 50

структура базы и вывод

Как выбрать 2 значения из 2-х параметров и вывести их на 1 строке?

вывод запроса

Как выбрать 2 значения из 2-х параметров и вывести их на 1 строке?

Можно ли получить структуру примера:
id nickname won lost?

Дополнительно:

Если я правильно понял - по одному айди нужно вывезти два разных параметра:
Я решал так:
1. Выборка одних данных по айди, вставка во временную таблицу.
2. Выборка вторых данных по айди, вставка во вторую временную таблицу
3. Джоин по обоим временным таблицам.

  • Да элементарно.

    Общее решение - группировка и условное агрегирование.
    Частное решение для именно двух параметров - связывание двух копий таблицы.

    Читать теорию по термину "реляционное деление".

  • Игорь, ну примерно так, только все параметры находятся в таблице saved_users_stats, возможно получить значение, например по параметрам
    [difficulty]chernobylhard [mode]PVE [stat]player_sessions_won
    [difficulty]chernobylhard [mode]PVE [stat]player_sessions_lost
    и вывести их значения в строке?
  • Habr, если это взаимоисключающие значения то так как я описал выше - вполне рабочий вариант
  • Делаем PIVOT

    select  	user_id, 	sum(case when param = 'Won' then value else 0 end) 'Won', 	sum(case when param = 'Lose' then value else 0 end) 'Lose' from user_stats where param in ('Won', 'Lose') group by user_id;

    select user_id, sum(case when param = 'Won' then value else 0 end) 'Won', sum(case when param = 'Lose' then value else 0 end) 'Lose' from user_stats where param in ('Won', 'Lose') group by user_id;

    SQL PIVOT online

    • Cпасибо, а возможно ли это реализовать с помощью UNION?
    • Habr, нет, но можно JOIN
    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Антон С. Ответ

    Для выбора 2 значений из 2 параметров и вывода их на одной строке в PHP можно использовать простой синтаксис. Для этого можно просто объединить значения в одну строку с помощью точки (.), который в PHP используется для конкатенации строк.

    Пример:

    $param1 = "значение1";
    $param2 = "значение2";
     
    echo $param1 . " " . $param2;

    $param1 = "значение1"; $param2 = "значение2"; echo $param1 . " " . $param2;

    В данном примере мы объявляем две переменные $param1 и $param2, каждая из которых содержит значение. Затем с помощью функции echo мы выводим обе переменные на одной строке с пробелом между ними.

    Таким образом, при выполнении данного кода на экране будет выведено значение переменной $param1, затем пробел, и значение переменной $param2.

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

    echo $param1 . $param2;

    echo $param1 . $param2;

    Теперь оба значения будут выведены на одной строке без пробела между ними.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно