广

MYSQL

  • MYSQL
  • MSSQL
  • Redis
  • MongoDB
  • oracle数据库
  • 数据管理

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

    2018-05-07 10:24:51 次阅读 稿源:互联网
    零七网广告
    全网推广平台,软文发布


    代码如下:

    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; 

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七网广告
    零七网广告
    零七网广告
    零七网广告