私は初心者の技術者で、私のホスティングサービスでMySQLに新しく変換された.MDB(MS-Access)データベースを持つColdFusion Webサイトを用意しています。何年も前から完全に動作していたクエリは、MySQLへの変換後も機能しなくなり、「すべての派生テーブルには別のエイリアスが必要です」というエラーメッセージがスローされます。MySQLデータベースで動作しない.MDBデータベースで動作するSQLクエリ
ヘルプとして、ここではクエリが何をしているのですか?今までは完全に完全に完了しました。会員データベースがあります。各メンバーには最大4つの電子メールアドレスがあり、各レコードのDBには4つの列があり、各電子メールアドレスは電子メールサービスプロバイダドメイン(Comcast.net、gmail.com、aol.comなど)に関連付けられています。私はクエリ結果を使用して、各(Comcast.net 12、gmail.com 26、aol.com 13など)に関連付けられたメンバーの電子メールアドレスの総数を個別にすべての電子メールドメインを一覧表示します。
MySQLでこのクエリを最小限にするだけで、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>
をエイリアスを配置しようとすると「テーブルエイリアスは、」実際のテーブルを参照するか、クエリが動作しますので、一時的に作成しただけで「仮想テーブル」であるのか? – rjd
「a」のような単なるランダムな名前です。 SQL Serverのようなdbmsには、テーブルエイリアスが必要です。 – Eric