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. 集合,ArrayList练习

    import java.util.ArrayList; import java.util.Iterator; public class ArrayListTest { public static vo ...

  2. JSON API免费接口 各种提供JSON格式数据返回服务网站的API接口

    这里为大家搜集了一些能够返回JSON格式的服务接口.部分需要用JSONP调用. 电商接口 京东获取单个商品价格接口: http://p.3.cn/prices/mgets?skuIds=J_商品ID& ...

  3. Java : Spring基础 AOP

    简单的JDK动态代理例子(JDK动态代理是用了接口实现的方式)(ICar是接口, GoogleCar是被代理对象, MyCC是处理方法的类): public class TestCar { publi ...

  4. php的基础知识(一)

    php(超文本预处理器)定义: php(外文名:php:Hertext Preprocessor,中文名:“超文本预处理器”)是一种通用的开源脚本语言.语法吸收了C语言.Java和Perl的特点,利于 ...

  5. 四、分离分层的 platform驱动

    学习目标: 学习实现platform机制的分层分离,并基于platform机制,编写led设备和驱动程序: 一.分离分层 输入子系统.usb设备比驱动以及platform类型的驱动等都体现出分离分层机 ...

  6. 函数调用方法之__cdecl与_stdcall

    在debug VS c工程文件时,碰到cannot convert from 'int (__cdecl *)(char *)' to 'xxx'这个问题,发现问题在于typedef函数指针类型时,将 ...

  7. go内建容器-切片

    1.基础定义 看到'切片'二字,满脸懵逼.切的啥?用的什么刀法切?得到的切片有什么特点?可以对切片进行什么操作? 先看怎么得到切片,也就是前两个问题.切片的底层是数组,所以切片切的是数组:切的时候采用 ...

  8. 北京Uber优步司机奖励政策(3月14日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  9. spring源码-Aware-3.4

    一.Aware接口,这个也是spring的拓展之一,为啥要单独拿出来讲呢,因为他相比于BeanFactoryPostProcessor,BeanPostProcessor的实用性更加高,并且在具体的业 ...

  10. spring之HttpInvoker

    一.HttpInvoker是常用的Java同构系统之间方法调用实现方案,是众多Spring项目中的一个子项目.顾名思义,它通过HTTP通信即可实现两个Java系统之间的远程方法调用,使得系统之间的通信 ...