mysql语句的简化:from中的临时表作为where中的条件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql语句的简化:from中的临时表作为where中的条件相关的知识,希望对你有一定的参考价值。

select * from
(select type,count(*) num from
(select m.type,count(*) num from toutticket otk,tronda r,tmovie m
where otk.uname='user2'
and otk.rid=r.aid
and r.mid=m.mid
group by uuid
)temp
group by type desc)res

where num =
(select max(num) from
(select type,count(*) num from
(select m.type,count(*) num from toutticket otk,tronda r,tmovie m
where otk.uname='user2'
and otk.rid=r.aid
and r.mid=m.mid
group by uuid
)temp
group by type desc)res)
;

上部分的res怎样写才可作为where num中的条件参数

参考技术A

你这个写的太哆嗦了,为什么要套那么多层没用的select,你这个无非要得出条数最多的那个type 所对应的行;

我不知道你用的什么数据库;

可以修改一下:

MySQL常用语句

  1. 基本查看及登录:
    mysql -u用户 -p密码
    show  databases;  ##查看数据库
    use 库名;   ##进入数据库
    show tables;  ##查看表
    desc 表名;  ##查看表的结构,表头

  2. 表的操作:查,改,删,增
    select 字段 from  表 \G;  ##查询表中的所有数据记录
    update 库名.表名 set 字段=新增 where 条件表达式; ##修改更新数据
    delete from 库名.表名 where 条件表达式;   ##删除数据记录
    create database 库名;  ##创建库
    create table 库名.表名(字段); ##创建表
    insert into 库名.表名 values(‘字段值‘,‘字段值‘); ##新增记录
    drop table 库名.表名;  ##删除表
    drop database 库名;  ##删除库

  3. mysql的权限管理
    grant 权限列表 on 库名.表名 to 用户@‘客户机地址‘ identified by ‘密码‘;  ##授权
    show grants for 用户@‘客户机地址‘;  ##查看权限
    revoke 权限列表 on  库名.表名 from 用户@‘客户机地址‘;   ##撤销授权

      flush privileges;    ##刷新权限

  4.备份与恢复mysql

     复制表到其他数据库下可直接使用
      登录到mysql

      /etc/init.d/mysqld stop  ##停止服务
      cd /usr/local/mysql/data  ##Mysql服务的安装目录
      cp -rf mysql/库名.表名 库名/   ##复制一个库下的表到另一库下
      chown mysql:mysql 库名/ -R  ##更改宿主和属组
      chmod 755 库名     ##更改库权限,有执行的权限
      chmod 660 库名/*  ##更改表权限
      /etc/init.d/mysqld start      ##启动服务
      登录mysql
      use 库名;        ##进入库
      show tables;   ##查看复制表是否生效

    mysql的冷备份:
      /etc/init.d/mysqld stop    ##停止服务
      tar Jcf /备份位置/备份名.tar.xz /usr/local/mysql/data   ##备份数据库的库文件目录
    mysql恢复:
       tar Jxf /备份位置/备份名.tar.xz -C /root    ##解压备份文件到指定目录
       cd /root/usr/local/mysql/data   ##进入到数据库的库文件目录
       cp -rfp 恢复文件/  /usr/local/mysql/data   ##选择需要恢复的库 -p不改变文件属性,若属性改                                                                        变则需要更改权限,上述“复制表”中有更改权限过程
       /etc/init.d/mysqld  start    ##启动服务
       mysql登录验证
       show databases;  ##数据已经恢复

    热备份;mysqldump
        netstat -utpln |grep 3306 ##确保mysql启动
        mysqldump -u用户名 -p密码 --all-databases >/备份目录/备份名.sql  #备份
        mysqldump -u密码 -p用户名 --all-databases --lock-talbes=0 >/备份目录/备份名.sql                                                                                                                           ##不锁表备份     
        mysql -u用户名 -p密码 </备份目录/备份名.sql   ##恢复

   5.mysql忘记密码的解决方案:
        vim /etc/my.cnf
        [mysqld]
        skip-grant-tables  ##添加该行,跳过密码验证
        :wq
        /etc/init.d/mysqld restart
        mysql  ##登录后操作
        update mysql.user set password=password("123123") where user="root"; ##修改root密码
        exit
        vim /etc/my.cnf
        [mysqld]
        #skip-grant-tables  ##注释该行
        :wq
        /etc/init.d/mysqld restart

  6.单独管理用户:
        用户管理
        mysql>use mysql;
        mysql>create user 用户 identified by ‘密码‘;  ##identified by 会将纯文本密码加密作为散列值存储
        mysql>rename   user  用户 to   用户名;##mysql 5之后可以使用,之前需要使用update 更新user表
        mysql> set password for 用户名=password(‘密码‘);    ##加密密码
        mysql> update  mysql.user  set  password=password(‘密码‘)  where user=‘用户‘;                                                                                                              ##单独修改某一用户密码
        mysql> show grants for 用户名;    ##查看用户权限
        mysql> grant select on mysql.user to 用户名; ##赋予权限
        mysql> revoke select on mysql.user from 用户名;  ##如果权限不存在会报错
        mysql>drop user 用户名;   ##mysql5之前删除用户时必须先使用revoke 删除用户权限,然后删除用户,mysql5之后drop 命令可以删除用户的同时删除用户的相关权限

  7.设置mysql5.5显示中文名:
        vi /etc/my.cnf
        [client]
        default-character-set = utf8   ##5.4版本[client]和[mysqld]只输入这一行即可
        [mysqld]
        character-set-server = utf8
        init_connect=‘SET NAMES utf8‘
        :wq
        /etc/init.d/mysqld restart




本文出自 “阿宇” 博客,请务必保留此出处http://xiaoayu.blog.51cto.com/12001978/1851546

以上是关于mysql语句的简化:from中的临时表作为where中的条件的主要内容,如果未能解决你的问题,请参考以下文章

MySQL的子查询中FROM和EXISTS子句的使用教程

MySQL笔记

06-mysql基础-mysql中的DQL-子查询

mysql多表查询之子语句查询

MySQL派生表

MySQL派生表