Как отобразить 2 разных данных (два условия) в одной таблице в MySQL - PullRequest
0 голосов
/ 30 июня 2018

У меня так проблема с отображением различных данных в PHP MySQL. Я хочу отображать разные данные в двух условиях. Пример:

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

tbl_hresponse

| id_reponse | id_atribut | skala | step |
| 1          | 1          | 1     | 1    |
| 1          | 2          | 4     | 1    |
| 1          | 3          | 2     | 1    |
| 1          | 1          | 5     | 2    |
| 1          | 2          | 6     | 2    |
| 1          | 3          | 2     | 2    |

Итак, я хочу вывести вот так:

| id_reponse | id_atribut | skala step 1 | skala step 2 |
| 1          | 1          | 1            | 5      |
| 1          | 2          | 4            | 6      |
| 1          | 3          | 2            | 2      |

У меня есть такой код:

$k = $db->pdo->prepare("select *, (CASE WHEN tbl_hresponder.step = '1' THEN tbl_hresponder.skala END) AS k,
                                                  (CASE WHEN tbl_hresponder.step = '2' THEN tbl_hresponder.skala END) AS q
                                                  from tbl_hresponder, tbl_atribut
                                                  where tbl_hresponder.id_atribut = tbl_atribut.id_atribut
                                                  AND tbl_hresponder.id_responder = '".$_GET['report']."'
                                                  AND tbl_hresponder.id_fservqual = '".$rfs['id_fservqual']."'
                                                  AND tbl_hresponder.step = 1");

1 Ответ

0 голосов
/ 30 июня 2018

Вы можете попробовать использовать функции CASE WHEN и max.

SELECT t1.id_reponse,
       t1.id_atribut,
       max(case when t1.step = 1 then t1.skala end) `skala step 1`, 
       max(case when t1.step = 2 then t1.skala end) `skala step 2`
FROM tbl_hresponse t1 
GROUP  BY  
       t1.id_reponse,
       t1.id_atribut

sqlfiddle: http://sqlfiddle.com/#!9/92a73e/4

Результат

| id_reponse | id_atribut | skala step 1 | skala step 2 |
|------------|------------|--------------|--------------|
|          1 |          1 |            1 |            5 |
|          1 |          2 |            4 |            6 |
|          1 |          3 |            2 |            2 |
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...