ホームページ > データベース > mysql チュートリアル > FROM 句の MySQL ビューとサブクエリ: 5.0 の制限を克服するには?

FROM 句の MySQL ビューとサブクエリ: 5.0 の制限を克服するには?

Mary-Kate Olsen
リリース: 2025-01-08 09:07:44
オリジナル
211 人が閲覧しました

MySQL Views and Subqueries in the FROM Clause: How to Overcome the 5.0 Limitation?

MySQL 5.0 ビューの FROM 句のサブクエリ: 制限事項と回避策

MySQL 5.0 ユーザーは、FROM 句にサブクエリを含むビューを作成しようとすると、「エラー 1349 (HY000): ビューの SELECT に FROM 句にサブクエリが含まれています。」というエラーが発生することがあります。サブクエリを含む複雑なクエリに基づいてビューを作成します。

考えられる回避策の 1 つは、サブクエリごとに個別のビューを作成し、サブクエリをこれらの派生ビューで置き換えることです。次のクエリの例を考えてみましょう:

SELECT temp.UserName
FROM (
  SELECT u1.name AS UserName, COUNT(m1.UserFromId) AS SentCount
  FROM Message m1, User u1
  WHERE u1.uid = m1.UserFromId
  GROUP BY u1.name HAVING SentCount > 3
) AS temp;
ログイン後にコピー

この制限を回避するには、両方のサブクエリに対してビューを作成できます。

CREATE VIEW v_user_sent_count AS
  SELECT u1.name AS UserName, COUNT(m1.UserFromId) AS SentCount
  FROM Message m1, User u1
  WHERE u1.uid = m1.UserFromId
  GROUP BY u1.name;

CREATE VIEW v_users_sent_over_3 AS
  SELECT UserName FROM v_user_sent_count
  WHERE SentCount > 3;
ログイン後にコピー

元のクエリで、サブクエリを派生ビューに置き換えます。

SELECT UserName
FROM v_users_sent_over_3;
ログイン後にコピー

このアプローチにより、FROM 句のサブクエリ制限が存在するバージョンの MySQL で複雑なサブクエリに基づいたビューを作成できます。ただし、すべてのサブクエリが FROM 句なしで表現できるわけではないことに注意してください。たとえば、並べ替えやフィルタリングに使用されるサブクエリには、相関サブクエリやウィンドウ関数の使用など、他の方法が必要になる場合があります。

以上がFROM 句の MySQL ビューとサブクエリ: 5.0 の制限を克服するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート