2016-03-03 8 views
-3

я создали следующие таблицыMYSQL Поворотные строки в колонке

CREATE TABLE `demo` (
    `id` int(11) DEFAULT NULL, 
    `A1` varchar(56) DEFAULT NULL, 
    `B1` varchar(56) DEFAULT NULL, 
    `C1` varchar(56) DEFAULT NULL, 
    `D1` varchar(56) DEFAULT NULL, 
    `E1` varchar(56) DEFAULT NULL, 
    `user_id` varchar(56) DEFAULT NULL 
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

Мой Вкладыш запрос

INSERT INTO `demo` VALUES 
(1,'a','b','c','d','d','10'); 
(2,'a','c','d','a','c','11'); 
(3,'a','d','d','a','c','12'); 

Затем после моей структуры таблицы здесь My table data

i want output that

для этого я пробовал после

select `10`,`20`,`30` from 
(
    (select A1,B1,C1,D1,E1 from demo where id =1) as `10`, 
    (select A1,B1,C1,D1,E1 from demo where id =2) as `20`, 
    (select A1,B1,C1,D1,E1 from demo where id =3) as `30` 
)as s 

я получаю следующее сообщение об ошибке

Error Code: 1064. You have an error in your SQL syntax; check the manual 
    that corresponds to your MySQL server version for the right syntax to use 
near 's' at line 6 

пожалуйста, дайте мне знать, что я делаю неправильно .... или любой другой лучший подход, чтобы получить этот вывод

+0

Извините! что это? 'один, два, три, четыре, пять' – 1000111

+0

Я тоже не понял ваш выход! – 1000111

+0

@SubrataDeyPappu я обновил свой вопрос.посмотрите на это – user3172982

ответ

1

Вы кажетесь хотите:

select max(case when id = 1 then val end) as `10`, 
     max(case when id = 2 then val end) as `20`, 
     max(case when id = 3 then val end) as `30`  
from ((select id, a1 as val, 1 as which from demo) union all 
     (select id, b1, 2 as which from demo) union all 
     (select id, c1, 3 as which from demo) union all 
     (select id, d1, 4 as which from demo) union all 
     (select id, e1, 5 as which from demo) 
    ) x 
group by which; 
+0

просто для понимания его +1! – Yossi

+0

@ Gordon Linoff вы можете объяснить свой запрос и логику за этим – user3172982

+0

Почему вы используете 1,2,3,4,5 здесь. Пожалуйста, дайте мне знать вашу логику для этого – user3172982