Poor Man's SQL Pivot. List Questions as Columns and Answers per User in one row

后端 未结 5 1454
轮回少年
轮回少年 2020-12-02 01:44

Current query:

SELECT order_id AS OrderNumber, ordName, ordLastName, question, answer 
FROM cart_survey 
JOIN orders 
    ON cart_surv         


        
5条回答
  •  Happy的楠姐
    2020-12-02 01:57

    This is the MySQL Version

    SELECT o . * , 
    q1.answer AS  'Type of Surgery:',
    q2.answer AS  'Month of Surgery:',
    q3.answer AS  'Year of Surgery:',
    q4.answer AS  'Current Brand:',
    q5.answer AS  'Degree of Satisfaction:'
    FROM (
        SELECT DISTINCT ordID, ordName, ordLastName
        FROM orders
    )o
    LEFT JOIN (
        SELECT cs.order_id, a.answer
        FROM cart_survey cs
        LEFT JOIN survey_answers a ON cs.answer_id = a.id
        WHERE cs.question_id =18
    )q1 ON o.ordID = q1.order_id
    LEFT JOIN (
        SELECT cs.order_id, a.answer
        FROM cart_survey cs
        LEFT JOIN survey_answers a ON cs.answer_id = a.id
        WHERE cs.question_id =19
    )q2 ON o.ordID = q2.order_id
    LEFT JOIN (
        SELECT cs.order_id, a.answer
        FROM cart_survey cs
        LEFT JOIN survey_answers a ON cs.answer_id = a.id
        WHERE cs.question_id =20
    )q3 ON o.ordID = q3.order_id
    LEFT JOIN (
        SELECT cs.order_id, a.answer
        FROM cart_survey cs
        LEFT JOIN survey_answers a ON cs.answer_id = a.id
        WHERE cs.question_id =21
    )q4 ON o.ordID = q4.order_id
    LEFT JOIN (
        SELECT cs.order_id, a.answer
        FROM cart_survey cs
        LEFT JOIN survey_answers a ON cs.answer_id = a.id
        WHERE cs.question_id =22
    )q5 ON o.ordID = q5.order_id
    

提交回复
热议问题