1.同一个表下多次查询:

sql语句: select b.* ,(select name from exh_common.medicine_type a where b.p_id = a.id) as p_name from exh_common.medicine_type b;

获取表medicine_type中所有内容,并获取表中,所有p_id不为空的父类型的名称

2.三表联合查询

sql: SELECT a.*,b.type_id, c.`name`,c.description from medicine_cadn a LEFT JOIN medicine_cadn_type_rel b ON a.id = b.cadn_id LEFT JOIN medicine_type c ON c.id = b.type_id

参考来源:https://zhidao.baidu.com/question/1689579268873125748.html

三张表的表结构:

1.tablename:'medicine_goods'

id = Column(String(40), primary_key=True)
cadn_id = Column(String(40))
cadn_name = Column(String(200))
cadn_py_name = Column(String(200))
name = Column(String(200), nullable=False)
py_name = Column(String(200), nullable=False)
description = Column(String(1020))
factory = Column(String(200), nullable=False)
certificate = Column(String(100), nullable=False)
label = Column(Integer, nullable=False)
drug_type = Column(String(10), nullable=False, server_default=text("'固态'"))
drug_unit = Column(String(20), nullable=False, server_default=text("'mg'"))
specification = Column(String(200))
specification_shape = Column(String(200))
specification_dose = Column(String(200))
specification_count = Column(String(200))
take_way = Column(String(200))
images = Column(Text)
key1 = Column(String(200))
val1 = Column(String(200))
key2 = Column(String(200))
val2 = Column(String(200))
key3 = Column(String(200))
val3 = Column(String(200))
key4 = Column(String(200))
val4 = Column(String(200))
key5 = Column(String(200))
val5 = Column(String(200))
enabled = Column(Integer, nullable=False, server_default=text("'1'"))
is_del = Column(Integer, nullable=False, server_default=text("'0'"))
created = Column(DateTime, nullable=False)
created_by = Column(String(40), nullable=False)
updated = Column(DateTime)
updated_by = Column(String(40))
2.tablename__ = 'medicine_type'

id = Column(String(50), primary_key=True)
name = Column(String(100), nullable=False, unique=True)
description = Column(String)
p_id = Column(String(32))
enabled = Column(Integer, nullable=False, server_default=text("'1'"))
is_del = Column(Integer, nullable=False, server_default=text("'0'"))
created = Column(DateTime, nullable=False)
created_by = Column(String(40), nullable=False)
updated = Column(DateTime)
updated_by = Column(String(40))


3.tablename__ = 'medicine_cadn_type_rel'

id = Column(Integer, primary_key=True)
cadn_id = Column(String(40), nullable=False)
type_id = Column(String(40), nullable=False)

mysql 复杂查询的更多相关文章

  1. Linux下MySQL慢查询分析mysqlsla安装使用

    说明: 操作系统:CentOS 5.X 64位 MySQL版本:mysql-5.5.35 MySQL配置文件:/etc/my.cnf MySQL 数据库存放目录:/data/mysql 实现目的:开启 ...

  2. MySQL的查询计划中ken_len的值计算

    本文首先介绍了MySQL的查询计划中ken_len的含义:然后介绍了key_len的计算方法:最后通过一个伪造的例子,来说明如何通过key_len来查看联合索引有多少列被使用. key_len的含义 ...

  3. mysql的查询、子查询及连接查询

    >>>>>>>>>> 一.mysql查询的五种子句         where(条件查询).having(筛选).group by(分组). ...

  4. MySQL慢查询日志总结

    慢查询日志概念 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志 ...

  5. 【转】Mysql联合查询union和union all的使用介绍

    Mysql的联合查询命令UNION和UNION ALL,总结了使用语法和注意事项,以及学习例子和项目例子,需要的朋友可以参考下 一.UNION和UNION ALL的作用和语法 UNION 用于合... ...

  6. mysql慢查询日志分析工具 mysqlsla(转)

    mysql数据库的慢查询日志是非常重要的一项调优辅助日志,但是mysql默认记录的日志格式阅读时不够友好,这是由mysql日志记录规则所决定的,捕获一条就记录一条,虽说记录的信息足够详尽,但如果将浏览 ...

  7. Mysql慢查询和慢查询日志分析

     Mysql慢查询和慢查询日志分析   众所周知,大访问量的情况下,可添加节点或改变架构可有效的缓解数据库压力,不过一切的原点,都是从单台mysql开始的.下面总结一些使用过或者研究过的经验,从配置以 ...

  8. [django/mysql] 使用distinct在mysql中查询多条不重复记录值的解决办法

    前言:不废话.,直接进入正文 正文: 如何使用distinct在mysql中查询多条不重复记录值? 首先,我们必须知道在django中模型执行查询有两种方法: 第一种,使用django给出的api,例 ...

  9. MySQL 慢查询日志分析及可视化结果

    MySQL 慢查询日志分析及可视化结果 MySQL 慢查询日志分析 pt-query-digest分析慢查询日志 pt-query-digest --report slow.log 报告最近半个小时的 ...

  10. mysql datetime查询异常

    mysql datetime查询异常 异常:Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp (2011 ...

随机推荐

  1. 增强for循环和迭代器

    package example6; import java.util.ArrayList;import java.util.Iterator;import java.util.List; class ...

  2. 集合之Map

    Map:存放键值对,根据键对象找对应的值对象.键不能重复!Map键不能重复,有唯一性,一般通过键找对应的的值Map集合的特点: 1.具有映射关系 2.两列 3.一列要唯一 一列可以重复 键类似于 Se ...

  3. select epoll poll

    如何理解 Epoll select 和 poll 三种模型,能否用生活中的例子做比喻? 比如说你从某宝下单买了几个东西,这几个东西分别由N个快递员分别给你送过来.在某一时刻,你开始等快递.对于sele ...

  4. Django中ORM简述

    ORM:对象关系映射(Object Relational Mapping,简称ORM) 作用:根据类生成表结构,将对象.列表的操作转换成对象的SQL语句,将SQL语句查询的结果转换为对象或列表 优点: ...

  5. Scala快速入门到精通 视频教程 百度云网盘下载地址

    Scala快速入门到精通  视频教程 百度云网盘下载地址 Scala快速入门到精通 下载地址链接:https://pan.baidu.com/s/1bqGIKyF 密码:ojwd

  6. DSP5509的定时器实验-第2篇

    1. 导入Easy5509开发板的例程EX02_TIME,5509有2个16位的定时器,有点少啊 2. 直接编译,提示找不到CSL.h,其实我也好奇,CSL库是从哪里来的?RTS库从哪里来的?头文件在 ...

  7. 『Python Kivy』Kivy模板语言KV说明

    语言概念 KV语言允许你以声明的方式创建控件树,以及绑定控件属性到其他的控件或使用一种自然的方式进行回调. 它允许非常快速并灵活的改变你的UI. 它还可以让你的应用程序与应用程序的界面进行分隔. 如何 ...

  8. String、StringBuffer、StringBuilder的区别和解析

    1.三个类之间的关系 他们都是通过字符数组来实现的,继承关系 String:字符串常量,不可变类 StringBuffer:字符串变量,可变类,线程安全 StringBuilder:字符串变量,可变类 ...

  9. hdu5698瞬间移动(杨辉三角+快速幂+逆元)

    瞬间移动 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submis ...

  10. hdu2149Public Sale(巴什博弈)

    Public Sale Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...