select * from( SELECT GROUP_CONCAT(IF((`id`%12 = 1 ) ,`value`, null)) AS `column1`
         , GROUP_CONCAT(IF((`id`%12 = 2 ) ,`value`, null)) AS `column2`
         , GROUP_CONCAT(IF((`id`%12 = 3 ) ,`value`, null)) AS `column3`
         , GROUP_CONCAT(IF((`id`%12 = 4)  ,`value`, null)) AS `column4`
         , GROUP_CONCAT(IF((`id`%12 = 5 ) ,`value`, null)) AS `column5`
         , GROUP_CONCAT(IF((`id`%12 = 6 ) ,`value`, null)) AS `column6`
         , GROUP_CONCAT(IF((`id`%12 = 7 ) ,`value`, null)) AS `column7`
         , GROUP_CONCAT(IF((`id`%12 = 8 ) ,`value`, null)) AS `column8`
         , GROUP_CONCAT(IF((`id`%12 = 9 ) ,`value`, null)) AS `column9`
         , GROUP_CONCAT(IF((`id`%12 = 10) ,`value`, null)) AS `column10`
         , GROUP_CONCAT(IF((`id`%12 = 11 ) ,`value`, null)) AS `column11`
         , GROUP_CONCAT(IF((`id`%12 = 0) ,`value`, null)) AS `column12`
    FROM `wp_rg_lead_detail` WHERE 1
    GROUP BY `lead_id` ) AS T  

Я хочу написать условие для первого выбора ,,, что-то вроде

 select * from( SELECT GROUP_CONCAT(IF((`id`%12 = 1 ) ,`value`, null)) AS `column1`
         , GROUP_CONCAT(IF((`id`%12 = 2 ) ,`value`, null)) AS `column2`
         , GROUP_CONCAT(IF((`id`%12 = 3 ) ,`value`, null)) AS `column3`
         , GROUP_CONCAT(IF((`id`%12 = 4)  ,`value`, null)) AS `column4`
         , GROUP_CONCAT(IF((`id`%12 = 5 ) ,`value`, null)) AS `column5`
         , GROUP_CONCAT(IF((`id`%12 = 6 ) ,`value`, null)) AS `column6`
         , GROUP_CONCAT(IF((`id`%12 = 7 ) ,`value`, null)) AS `column7`
         , GROUP_CONCAT(IF((`id`%12 = 8 ) ,`value`, null)) AS `column8`
         , GROUP_CONCAT(IF((`id`%12 = 9 ) ,`value`, null)) AS `column9`
         , GROUP_CONCAT(IF((`id`%12 = 10) ,`value`, null)) AS `column10`
         , GROUP_CONCAT(IF((`id`%12 = 11 ) ,`value`, null)) AS `column11`
         , GROUP_CONCAT(IF((`id`%12 = 0) ,`value`, null)) AS `column12`
    FROM `wp_rg_lead_detail` WHERE 1
    GROUP BY `lead_id` ) where `column1`=2014 ) AS T

Но это сказано # 1248 - Каждая производная таблица должна иметь собственный псевдоним, так как я могу это написать?

0
user3698516 2 Июн 2014 в 17:05
1
SQL - это всего лишь язык структурированных запросов - язык, используемый многими системами баз данных, но не продукт баз данных ... многие вещи зависят от поставщиков. конкретные - поэтому нам действительно нужно знать, какую систему баз данных (и какую версию) вы используете (пожалуйста, обновите теги соответствующим образом) ....
 – 
marc_s
2 Июн 2014 в 17:07
Предполагая, что MySQL: может быть, вам следует использовать «HAVING» вместо «WHERE»?
 – 
M.S.
2 Июн 2014 в 17:09

2 ответа

Лучший ответ

Добавьте предложение where после , дающее подзапросу имя:

 select * from( SELECT GROUP_CONCAT(IF((`id`%12 = 1 ) ,`value`, null)) AS `column1`
         , GROUP_CONCAT(IF((`id`%12 = 2 ) ,`value`, null)) AS `column2`
         , GROUP_CONCAT(IF((`id`%12 = 3 ) ,`value`, null)) AS `column3`
         , GROUP_CONCAT(IF((`id`%12 = 4)  ,`value`, null)) AS `column4`
         , GROUP_CONCAT(IF((`id`%12 = 5 ) ,`value`, null)) AS `column5`
         , GROUP_CONCAT(IF((`id`%12 = 6 ) ,`value`, null)) AS `column6`
         , GROUP_CONCAT(IF((`id`%12 = 7 ) ,`value`, null)) AS `column7`
         , GROUP_CONCAT(IF((`id`%12 = 8 ) ,`value`, null)) AS `column8`
         , GROUP_CONCAT(IF((`id`%12 = 9 ) ,`value`, null)) AS `column9`
         , GROUP_CONCAT(IF((`id`%12 = 10) ,`value`, null)) AS `column10`
         , GROUP_CONCAT(IF((`id`%12 = 11 ) ,`value`, null)) AS `column11`
         , GROUP_CONCAT(IF((`id`%12 = 0) ,`value`, null)) AS `column12`
    FROM `wp_rg_lead_detail` WHERE 1
    GROUP BY `lead_id` )  AS T
    where `column1`=2014
1
D Stanley 2 Июн 2014 в 17:19

Вы должны использовать псевдонимы для всех своих подзапросов, в данном случае для всего, что находится внутри первого FROM (). Попробуйте следующее:

SELECT * FROM ( SELECT GROUP_CONCAT(IF((`id`%12 = 1 ) ,`value`, null)) AS `column1`
     , GROUP_CONCAT(IF((`id`%12 = 2 ) ,`value`, null)) AS `column2`
     , GROUP_CONCAT(IF((`id`%12 = 3 ) ,`value`, null)) AS `column3`
     , GROUP_CONCAT(IF((`id`%12 = 4)  ,`value`, null)) AS `column4`
     , GROUP_CONCAT(IF((`id`%12 = 5 ) ,`value`, null)) AS `column5`
     , GROUP_CONCAT(IF((`id`%12 = 6 ) ,`value`, null)) AS `column6`
     , GROUP_CONCAT(IF((`id`%12 = 7 ) ,`value`, null)) AS `column7`
     , GROUP_CONCAT(IF((`id`%12 = 8 ) ,`value`, null)) AS `column8`
     , GROUP_CONCAT(IF((`id`%12 = 9 ) ,`value`, null)) AS `column9`
     , GROUP_CONCAT(IF((`id`%12 = 10) ,`value`, null)) AS `column10`
     , GROUP_CONCAT(IF((`id`%12 = 11 ) ,`value`, null)) AS `column11`
     , GROUP_CONCAT(IF((`id`%12 = 0) ,`value`, null)) AS `column12`
FROM `wp_rg_lead_detail` WHERE 1
GROUP BY `lead_id` ) AS T WHERE `column1`=2014
0
one angry researcher 2 Июн 2014 в 17:12