MYSQL错误代码1248每个派生表必须拥有它自己的别名

时间:2017-11-05 17:52:21

标签: mysql alias

  

MYSQL错误代码1248每个派生表必须拥有它自己的别名

select supplier_id, supplier_name, strong_answers from 
(select campaign_suppliers.id supplier_id, campaign_suppliers.supplier_name supplier_name, 
count(case when supplier_answers.binary_answer is not null 
or supplier_answers.value_answer is not null then 1 end) strong_answers 
from supplier_answers join campaign_suppliers on (supplier_answers.supplier_id = campaign_suppliers.id) 
where supplier_answers.campaign_id = 1 group by campaign_suppliers.id, campaign_suppliers.supplier_name 
having count(case when supplier_answers.binary_answer is not null 
or supplier_answers.value_answer is not null then 1 end) >=  
(select count(distinct supplier_answers.question_index) from supplier_answers where campaign_id = 1)) 
where strong_answers >= (select count(distinct supplier_answers.question_index) from supplier_answers where campaign_id = 1)

1 个答案:

答案 0 :(得分:1)

您需要from ( ... ) t的表名别名,请参阅下面的// <----符号

select t.supplier_id, t.supplier_name, t.strong_answers from (
    select campaign_suppliers.id supplier_id, campaign_suppliers.supplier_name supplier_name, 
    count(case when supplier_answers.binary_answer is not null 
      or supplier_answers.value_answer is not null then 1 end) strong_answers 
from supplier_answers join campaign_suppliers on (supplier_answers.supplier_id = campaign_suppliers.id) 
where supplier_answers.campaign_id = 1 group by campaign_suppliers.id, campaign_suppliers.supplier_name 
having count(case when supplier_answers.binary_answer is not null 
or supplier_answers.value_answer is not null then 1 end) >=  
(select count(distinct supplier_answers.question_index) 
        from supplier_answers where campaign_id = 1)) t //<----  here you need  a table name eg: t
where t.strong_answers >= (select count(distinct supplier_answers.question_index) from supplier_answers where campaign_id = 1)