MySQL 视图 第1349号错误解决方法

代码如下:

CREATE OR REPLACE VIEW BLOG_V_ADMIN 
(ID,NICKNAME,SEX,EMAIL,PHONE,QQ,MSN,HTTP,REGISTER_TIME, 
IP,LAST_LOGIN_IP,LOGIN_TIME) 
AS 
SELECT 
 A.ID,A.NICKNAME,A.SEX,A.EMAIL,A.PHONE,A.QQ,A.MSN,A.HTTP,A.REGISTER_TIME, 
 B.IP AS LAST_LOGIN_IP,B.LOGIN_TIME AS LAST_LOGIN_TIME 
FROM 
 BLOG_ADMIN A LEFT JOIN 
 BLOG_ADMIN_LOGIN_TRACK B ON B.ADMIN = A.ID LEFT JOIN 
 (SELECT ADMIN,MAX(LOGIN_TIME) AS LOGIN_TIME FROM BLOG_ADMIN_LOGIN_TRACK GROUP BY ADMIN) C ON B.ADMIN = C.ADMIN;

ERROR 1349 (HY000): View's SELECT contains a subquery in the FROM clause
这是BUG吗?见:http://bugs.mysql.com/bug.php?id=16757

木有办法,我只好这样改了:

代码如下:

CREATE OR REPLACE VIEW BLOG_V_ADMIN 
(ID,NICKNAME,SEX,EMAIL,PHONE,QQ,MSN,HTTP,REGISTER_TIME, 
LOGIN_TIME,LAST_LOGIN_IP) 
AS 
SELECT 
 A.ID,A.NICKNAME,A.SEX,A.EMAIL,A.PHONE,A.QQ,A.MSN,A.HTTP,A.REGISTER_TIME, 
 (SELECT LOGIN_TIME FROM BLOG_ADMIN_LOGIN_TRACK WHERE ADMIN = A.ID ORDER BY LOGIN_TIME DESC LIMIT 1) AS LAST_LOGIN_TIME, 
 (SELECT INET_NTOA(IP) FROM BLOG_ADMIN_LOGIN_TRACK WHERE ADMIN = A.ID ORDER BY LOGIN_TIME DESC LIMIT 1) AS LAST_LOGIN_IP 
FROM 
 BLOG_ADMIN A;

(0)

相关推荐

  • 详解Mysql中的视图

    视图: mysql中的视图,视图与表有很多相似的地方,视图也是由若干个字段以及若干条记录构成,视图也可以作为select语句的数据源. 视图中保存的仅仅是一条select语句,保存的是视图的定义,并没有保存真正的数据.视图中的源数据都来自于数据库表,数据库表称为基本表或者基表,视图称为虚表. 1.创建视图 创建视图的语法格式如下. create view 视图名 [ (视图字段列表) ] as select语句 例: create view t (id,name,age,sex) as sele

  • MySQL中视图的使用及多表INNER JOIN的技巧分享

    创建视图   Sql代码 CREATE VIEW view_name AS SELECT t1.xxx, t2.xxx, t3.xxx FROM (table1 t1 INNER JOIN table2 t2 ON t1.fid = t2.fid) INNER JOIN table3 t3 ON t1.mid = t3.mid; 这里使用了3表关联,对于多表关联的 INNER JOIN 写法有一个技巧 1. 先写最简单的2表关联 INNER JOIN 2. 然后使用 () 从 FROM 之后到语

  • mysql触发器实现oracle物化视图示例代码

    oracle数据库支持物化视图--不是基于基表的虚表,而是根据表实际存在的实表,即物化视图的数据存储在非易失的存储设备上. 下面实验创建ON COMMIT 的FAST刷新模式,在mysql中用触发器实现insert , update , delete 刷新操作 1.基础表创建,Orders 表为基表,Order_mv为物化视图表 复制代码 代码如下: mysql> create table Orders( -> order_id int not null auto_increment, -&g

  • MySQL入门教程(七)之视图

    相关阅读: MySQL入门教程(五)之表的创建.修改和删除 视图是从一个或多个表中导出来的虚拟表.视图就像一个窗口,通过这个窗口可以看到系统专门提供的数据. 1.视图简介 1.1 视图的含义 视图是从一个或多个表中导出来的虚拟表,还可以从已经存在的视图的基础上定义. 数据库中只存放视图的定义,而不存放视图中的数据,这些数据仍存放在原来的表中.一旦表中的数据发生变化,显示在视图中的数据也会相应变化. MySQL的视图并不支持输入参数的功能,即交互性上较差,但对于变化不是很大的操作,使用视图可以很大

  • MySQL笔记之视图的使用详解

    什么是视图 视图是从一个或多个表中导出来的表,是一种虚拟存在的表. 视图就像一个窗口,通过这个窗口可以看到系统专门提供的数据. 这样,用户可以不用看到整个数据库中的数据,而之关心对自己有用的数据. 数据库中只存放了视图的定义,而没有存放视图中的数据,这些数据存放在原来的表中. 使用视图查询数据时,数据库系统会从原来的表中取出对应的数据. 视图中的数据依赖于原来表中的数据,一旦表中数据发生改变,显示在视图中的数据也会发生改变. 视图的作用 1.使操作简单化,可以对经常使用的查询定义一个视图,使用户

  • MySQL 视图 第1349号错误解决方法

    复制代码 代码如下: CREATE OR REPLACE VIEW BLOG_V_ADMIN  (ID,NICKNAME,SEX,EMAIL,PHONE,QQ,MSN,HTTP,REGISTER_TIME,  IP,LAST_LOGIN_IP,LOGIN_TIME)  AS  SELECT   A.ID,A.NICKNAME,A.SEX,A.EMAIL,A.PHONE,A.QQ,A.MSN,A.HTTP,A.REGISTER_TIME,   B.IP AS LAST_LOGIN_IP,B.LOG

  • Mysql主从同步Last_IO_Errno:1236错误解决方法

    Mysql主从同步的Last_IO_Errno:1236错误是什么原因呢,我们要如何来解决这个问题呢?下面和小编一起来看看关于此问题的记录与解决办法. <script>ec(2);</script> 从服务器错误代码: Last_IO_Errno: 1236 Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Slave can not handle replicat

  • MySQL数据库 1067错误号的解决方法

    在Windows Professional 7 64-bit系统下安装了MySQL 5.6,但是某一天发生了错误,错误号:1067:怎么解决这个问题呢? 以下为解决步骤: 1.以系统管理员登陆: 2.停止MySQL服务: 3.进入CMD命令行模式,然后进入MySQL的安装目录,假设是D:/MySQL/MySQL Server 5.6/: 4.跳过权限检查启动MySQL,使用命令 D:/MySQL/MySQL Server 5.6/bin/mysqld-nt –-skip-grant-tables

  • MySQL启动1053错误解决方法

    操作系统:windows7 mysql版本:5.5.22 www.jb51.net 在使用命令mysqld --install servicename --defaults-file='file_name'创建mysql服务时,系统 已提示创建服务成功,但是net start命令提示启动失败,并在services.msc中提示1053错误 解决办法: 在网上有人说是服务的"登录"选项卡里要设置成administrator: 也有人说是需要先把服务删除,在重新创建(可以先考虑这两方面):

  • Eclipse 项目出现错误(红色叹号)解决方法

    Eclipse 项目出现错误(红色叹号)解决方法 情况:就是项目出现红色感叹号  解决方法: 对准项目右键选择Build Path → configure build path 点击eclipse项目的configure build path后,在弹出来的窗口中,找到Libraries页签,可以看到一些jar包是红色叉号的,这种jar包就是找不到对应文件的jar包,引起这种eclipse项目前面出现红色叹号.eclipse项目前面出现红色感叹号.eclipse项目前面出现红色惊叹号.eclips

  • Mysql 1864 主从错误解决方法

    从字面意思看了一下是因为slave_pending_jobs_size_max默认值为16777216(16MB),但是slave接收到的slave_pending_jobs_size_max为17085453(17M): 解决方案 从库执行如下SQL mysql>stop slave; mysql>set global slave_pending_jobs_size_max=20000000; mysql> start slave; #在多线程复制时,在队列中Pending的事件所占用

  • phpStudy配置多站点多域名方法及遇到的403错误解决方法

    此文不太适合一点不懂多站点多域名的.适合于碰到难处了,一点就透.ok.比较随意. 首先,打开站点域名管理,配置如下,网站域名和目录都可以自己设置,端口重设一个,不要是80了,然后先新增再保存. 打开配置文件vhosts,会看到新增了801端口的东西 在配置文件http.conf中添加 ,在80后添加新端口号 然后在hosts文件中配置下,127.0.0.1 www.aaa.com 再就是,玛德GG了,出现forbidden了,403,没有访问权限. 废了很大劲终于找到了解决方案,下面先复制解决方

  • CentOS 7下MySQL服务启动失败的快速解决方法

    今天,启动MySQL服务器失败,如下所示: [root@spark01 ~]# /etc/init.d/mysqld start Starting mysqld (via systemctl): Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe&qu

  • Python出现segfault错误解决方法

    本文分析了Python出现segfault错误解决方法.分享给大家供大家参考,具体如下: 最近python程序在运行过程中偶尔会引发系统segfault的错误,而且是在不定期不同代码段时发生的,所以单步调试没办法确定是哪一行代码的问题. 段错误, 这个现象太离奇了.在系统日志里message中一开始提示为python库的问题,后台有提示过libmysqlclient, 也提示过cjson库引起的. 如果真是在特定硬件环境中python或mysql库会出现问题,那有点说不过去.如果是cjson引起

  • MySql Error 1698(28000)问题的解决方法

    一,问题描述: MysqlERROR1698(28000)解决,新装了mysql-server-5.7,登录为这一问题,普通用户不能进mysql,只有root用户才能进,并且不需要任何密码. ~$ mysql -u root -p Enter password: ERROR 1698 (28000): Access denied for user 'root'@'localhost' 二,解决步骤: 停止mysql服务 ~$ sudo service mysql stop 以安全模式启动MySQ

随机推荐