Получение 1 значения в 1 столбец - PullRequest
0 голосов
/ 12 июня 2018

Добрый день.Мне нужно, чтобы вывод выглядел так, возможно ли этот вывод.My Output

У меня есть сценарий: myoutput это my output

SELECT q_type,q_title,qcategory_question 
FROM `survey_question` as sq LEFT JOIN 
          (SELECT id,qid,qcategory_question 
           FROM survey_category_question
          ) scq ON sq.id = scq.qid

Заранее спасибо.

Ответы [ 2 ]

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

Хотя я не буду предлагать вам делать это в запросе, как вы могли бы легко это сделать в php, вы можете попробовать это ..

SET @row_number = 0;
SELECT q_type, CASE 
    WHEN A.mxnum = AA.num
        THEN q_title
    ELSE ' '
    END AS q_title, qcategory_question
FROM (
SELECT q_type, q_title, qcategory_question, (@row_number: = @row_number + 1) 
       AS num FROM `survey_question` AS sq
LEFT JOIN (
    SELECT id, qid, qcategory_question
    FROM survey_category_question
    ) AA
LEFT JOIN (
    SELECT q_title, max(num) AS mxnum
    FROM (
        SELECT q_type, q_title, qcategory_question, (@row_number: = @row_number + 1) AS num
        FROM `survey_question` AS sq
        LEFT JOIN (
            SELECT id, qid, qcategory_question
            FROM survey_category_question
            ) scq
            ON sq.id = scq.qid
        )
    GROUP BY q_title
    ) A
    ON num = mxnum
);

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

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

Ваш запрос в порядке.Вы должны обрабатывать форматирование в приложении.Теперь я собираюсь сделать другое предложение, которое состоит в том, чтобы свести все категории в одну строку, используя group by:

SELECT sq.q_type, sq.q_title, GROUP_CONCAT(scq.qcategory_question)
FROM survey_question sq LEFT JOIN 
     survey_category_question scq
     ON sq.id = scq.qid
GROUP BY sq.q_type, sq.q_title;

Примечания:

  • Квалифицировать все столбцыимена в запросе, особенно если у вас есть более одной ссылки на таблицу.
  • Подзапрос не нужен и, вероятно, вреден для MySQL (большинство баз данных игнорирует его, но MySQL может его материализовать).
  • Полученные категории будут отображаться в списке через запятую для вывода.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...