此问题在此处已有答案:
What is the error "Every derived table must have its own alias" in MySQL?(4个答案)
2天前关闭。
在mysql我看到这个错误,但可以修复它。任何人都可以帮助吗?
select * from
(
(select a.* from sessions as a)
join
(
select b.customer_id, min(b.timestamp),
b.marketing_source as first_touch_source,
b.marketing_medium as first_touch_medium
from sessions as b
group by b.customer_id
) on a.customer_id = b=customer_id
) as T
3条答案
按热度按时间kxeu7u2r1#
我认为您的问题应该是
wn9m85ua2#
第一个
xvw2m8pv3#
一些DBMS要求您命名所有派生表。您的查询(我删除了不必要的派生表T):
可更改为:
为避免混淆,应在外部级别选择另一个别名,尽管内部别名在那里不可见。
附注:衍生表格d可能是也可能不是有效的SQL。SQL92中不允许使用衍生表格d,但如果marketing_* 在功能上相依于customer_id,则SQL99中允许使用衍生表格d。
您可以进一步将其简化为:
我假设您还想使用
c.timestamp = d.ts
进行连接。如果是这种情况,并且您使用的是最新版本的MySQL(8+),则可以使用窗口函数而不是自连接