每个派生表都必须有自己的别名
我在MySQL上运行这个查询
SELECT ID FROM ( SELECT ID, msisdn FROM ( SELECT * FROM TT2 ) ); 它给这个错误:
每个派生表都必须有自己的别名。
哪里不对 ?
 每个派生表(AKA子查询)的确必须有一个别名。 也就是说,括号中的每个查询都必须被赋予一个别名( AS whatever ),这可以用来在外部查询的其余部分引用它。 
 SELECT ID FROM ( SELECT ID, msisdn FROM ( SELECT * FROM TT2 ) AS T ) AS T 
在你的情况,当然,整个查询可以被replace为:
 SELECT ID FROM TT2 
我认为这是要求你这样做:
 SELECT ID FROM (SELECT ID, msisdn FROM (SELECT * FROM TT2) as myalias ) as anotheralias; 
但是,为什么你会首先写这个查询呢?
 这里有一个不能重写的别名(不能GROUP BY DISTINCT )。 
 想象一张名为purchases的表格,loggingcustomers在stores购买的stores ,即它是一个多对多的表格,软件需要知道哪些顾客在多个商店进行了购买: 
 SELECT DISTINCT customer_id, SUM(1) FROM ( SELECT DISTINCT customer_id, store_id FROM purchases) GROUP BY customer_id HAVING 1 < SUM(1); 
 将与错误中断Every derived table must have its own alias 。 修理: 
 SELECT DISTINCT customer_id, SUM(1) FROM ( SELECT DISTINCT customer_id, store_id FROM purchases) AS custom GROUP BY customer_id HAVING 1 < SUM(1); 
  (请注意AS custom别名)。