2

SQL クエリがあります

SELECT CONCAT(
  'SELECT `table`.id', GROUP_CONCAT(CONCAT('
     ,    `t_', REPLACE(name, '`', '``'), '`.value
         AS `', REPLACE(name, '`', '``'), '`'
   ) SEPARATOR ''),
 ' FROM `table` ', GROUP_CONCAT(CONCAT('
     LEFT JOIN `table`   AS `t_', REPLACE(name, '`', '``'), '`
            ON `table`.id = `t_', REPLACE(name, '`', '``'), '`.id
           AND `t_', REPLACE(name, '`', '``'), '`.name = ', QUOTE(name)
   ) SEPARATOR ''),
 ' GROUP BY `table`.id'
) INTO @qry FROM (SELECT DISTINCT name FROM `table`) t;

PREPARE stmt FROM @qry;
EXECUTE stmt;

この質問はこちらから。正直なところ、私はそれをほとんど理解していません。それが可能であることに驚いていますが、いくつかの名前を変更した後、必要なことは正確に実行されますが、「ビュー」で必要です。

これをデータベースのビューに追加するにはどうすればよいですか?

どうもありがとう

4

1 に答える 1

2

この質問が出されてしばらく経っていると思いますが、これが可能であることは知っています。

以下に示すように、準備したクエリの最後のセクションを少し変更すると、目的を達成するのに役立ちます。

の前に変更するだけです。PREPARE stmt

SET @qrys = CONCAT('CREATE OR REPLACE VIEW "put_your_view_name_without_quote" AS ',@qry);
PREPARE stmt FROM @qrys;
EXECUTE stmt;
于 2019-07-15T07:34:47.910 に答える