【发布时间】:2017-06-29 22:00:04
【问题描述】:
我是一名新手技术人员,有一个带有 .MDB (MS-Access) 数据库的 ColdFusion 网站,该数据库由我的托管服务新转换为 MySQL。一个曾经完美运行多年的查询在转换为 MySQL 后不再运行,并抛出错误消息“每个派生表必须有自己的别名”。
作为帮助,以下是查询的作用——并且到目前为止做得非常完美:我有一个会员数据库。每个成员最多有四个电子邮件地址,因此每个记录在数据库中有四个列,每个电子邮件地址与电子邮件服务提供商域(Comcast.net、gmail.com、aol.com 等)相关联。我使用查询结果单独列出所有电子邮件域以及与每个域关联的成员电子邮件地址的总数(Comcast.net 12、gmail.com 26、aol.com 13 等)。
我需要在这个查询中进行最少的修改以使其与 MySQL 一起工作?感谢您的帮助!
<cfquery name="cfqGetEmailServiceProviderDomains" datasource="membership_database">
SELECT email_service_provider, COUNT(email_service_provider) AS Instances
FROM
(
SELECT MID(email_address1, INSTR(email_address1, '@') + 1) AS email_service_provider
FROM tblMembers
WHERE email_address1_active = 1
AND email_address1 IS NOT NULL
UNION ALL
SELECT MID(email_address2, INSTR(email_address2, '@') + 1) AS email_service_provider
FROM tblMembers
WHERE email_address2_active = 1
AND email_address2 IS NOT NULL
UNION ALL
SELECT MID(email_address3, INSTR(email_address3, '@') + 1) AS email_service_provider
FROM tblMembers
WHERE email_address3_active = 1
AND email_address3 IS NOT NULL
UNION ALL
SELECT MID(email_address4, INSTR(email_address4, '@') + 1) AS email_service_provider
FROM tblMembers
WHERE email_address4_active = 1
AND email_address4 IS NOT NULL
)
GROUP BY email_service_provider
ORDER BY email_service_provider ASC
</cfquery>
【问题讨论】: