Как выбрать 2 значения из 2-х параметров и вывести их на 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
структура базы и вывод
вывод запроса
Можно ли получить структуру примера:
id nickname won lost?
Дополнительно:
Если я правильно понял - по одному айди нужно вывезти два разных параметра:
Я решал так:
1. Выборка одних данных по айди, вставка во временную таблицу.
2. Выборка вторых данных по айди, вставка во вторую временную таблицу
3. Джоин по обоим временным таблицам.
Общее решение - группировка и условное агрегирование.
Частное решение для именно двух параметров - связывание двух копий таблицы.
Читать теорию по термину "реляционное деление".
[difficulty]chernobylhard [mode]PVE [stat]player_sessions_won
[difficulty]chernobylhard [mode]PVE [stat]player_sessions_lost
и вывести их значения в строке?
Делаем 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
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос


Для выбора 2 значений из 2 параметров и вывода их на одной строке в PHP можно использовать простой синтаксис. Для этого можно просто объединить значения в одну строку с помощью точки (.), который в PHP используется для конкатенации строк.
Пример:
$param1 = "значение1"; $param2 = "значение2"; echo $param1 . " " . $param2;
В данном примере мы объявляем две переменные $param1 и $param2, каждая из которых содержит значение. Затем с помощью функции echo мы выводим обе переменные на одной строке с пробелом между ними.
Таким образом, при выполнении данного кода на экране будет выведено значение переменной $param1, затем пробел, и значение переменной $param2.
Если необходимо вывести значения без пробела между ними, то можно просто убрать пробел в строке конкатенации:
echo $param1 . $param2;
Теперь оба значения будут выведены на одной строке без пробела между ними.