zoukankan      html  css  js  c++  java
  • DQL-自连接

    SEED

    -- 自连接数据库:
    CREATE TABLE `school`.`category`( `categoryid` INT(3) NOT NULL COMMENT 'id', `pid` INT(3) NOT NULL COMMENT '父id 没有父则为1', `categoryname` VARCHAR(10) NOT NULL COMMENT '种类名字', PRIMARY KEY (`categoryid`) ) ENGINE=INNODB CHARSET=utf8 COLLATE=utf8_general_ci; 
    
    insert into `school`.`category` (`categoryid`, `pid`, `categoryname`) values ('2', '1', '信息技术');
    insert into `school`.`category` (`categoryid`, `pid`, `categoryname`) values ('3', '1', '软件开发');
    insert into `school`.`category` (`categoryid`, `pid`, `categoryname`) values ('5', '1', '美术设计');
    insert into `school`.`category` (`categoryid`, `pid`, `categorynamE`) values ('4', '3', '数据库'); 
    insert into `school`.`category` (`categoryid`, `pid`, `categoryname`) values ('8', '2', '办公信息');
    insert into `school`.`category` (`categoryid`, `pid`, `categoryname`) values ('6', '3', 'web开发'); 
    insert into `school`.`category` (`categoryid`, `pid`, `categoryname`) values ('7', '5', 'ps技术');
    

    思路: 可以拆分成两个表

    categoryid categoryname
    2 信息技术
    3 软件开发
    5 美术设计
    pid categoryname
    3 数据库
    2 办公信息
    3 web开发
    5 ps技术

    想要得到如下结果:

    父栏目 子栏目
    软件开发 数据库
    软件开发 web开发
    美术设计 ps技术
    信息技术 办公信息

    解题答案:

    SELECT a.categoryname AS '父栏目', b.categoryname AS '子栏目'
    FROM category AS a , category AS b
    WHERE a.categoryid = b.pid
    
  • 相关阅读:
    linux安装vsftpd服务器
    安装Twisted
    py文件转换为exe文件
    Python实现批量新建SecureCRT Session
    常见的字符编码
    心得 : 面向对象和面向过程的区别
    Apache配置HTTPS的过程小记
    关于oracle的sequence和trigger。
    oracle在drop表时要注意
    mysql中整数类型后面的数字,是不是指定这个字段的长度?比如int(11),11代表11个字节吗?
  • 原文地址:https://www.cnblogs.com/menglingxu/p/13884079.html
Copyright © 2011-2022 走看看