mysql - 创建 View 时出错

标签 mysql

我收到错误#1349 - View 的 SELECT 在 FROM 子句中包含子查询

我的代码是:

CREATE VIEW `MyViewName` AS
SELECT *
FROM
  (SELECT *
   FROM (
           (SELECT *
            FROM `crm_clients`
            WHERE ctype=1
            ORDER BY rand() LIMIT 0,
                                  3)
         UNION
           (SELECT *
            FROM `crm_clients`
            WHERE ctype=1
            ORDER BY rand() LIMIT 0,
                                  3)
         UNION
           (SELECT *
            FROM `crm_clients`
            WHERE ctype=1
            ORDER BY rand() LIMIT 0,
                                  3)
         UNION
           (SELECT *
            FROM `crm_clients`
            WHERE ctype=1
            ORDER BY rand() LIMIT 0,
                                  3)) t
   ORDER BY rand())

这段代码有什么问题?我不熟悉 View

最佳答案

定义 View 时,MySQL 不允许在 from 子句中使用子查询。

你可以做你想做的事:

Create View `MyViewName` as
    (SELECT * FROM `crm_clients` WHERE ctype=1 order by rand() limit 0,3)
    union 
    (SELECT * FROM `crm_clients` WHERE ctype=1 order by rand() limit 0,3)
    union
    (SELECT * FROM `crm_clients` WHERE ctype=1 order by rand() limit 0,3)
    union
    (SELECT * FROM `crm_clients` WHERE ctype=1 order by rand() limit 0,3)
    order by rand();

我的猜测是您实际上也想更改 ctype 值。否则查询会很奇怪。

Here是对 View 的限制。

关于mysql - 创建 View 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25036299/

相关文章:

mysql - SQL select 语句内连接

mysql - SQL 根据相邻单元格值设置单元格值

php - Codeigniter 从数据库获取结果

mysql - SQL 触发器不起作用(基于计划)

mysql - 基于 lower_case_table_names 系统变量的 information_schema.routines 上的 SELECT 行为

PHP 错误 500 和发布数据返回空字符串

PHP MySQL 登录时不返回 1

php - 在我的插入代码部分出现 SQL 语法错误

mysql - 如何在单独的日期时间(年,月,日)中使用where子句

mysql - 根据另一列中给出的季度查询列中的四分之一百分比