1.创建user表

2.创建gateway表

3.创建user_gateway表

4.创建device表

5.创建gateway_device表

6.创建一个实体类

public class DeviceModule{

  private Integer id;
  private String device_mac;
  private String device_name;
  private String device_status;

  public Integer getId() {
    return id;
  }
  public void setId(Integer id) {
    this.id = id;
  }
  public String getDevice_mac() {
    return device_mac;
  }
  public void setDevice_mac(String device_mac) {
    this.device_mac = device_mac;
  }
  public String getDevice_name() {
    return device_name;
  }
  public void setDevice_name(String device_name) {
    this.device_name = device_name;
  }
  public String getDevice_status() {
    return device_status;
  }
  public void setDevice_status(String device_status) {
    this.device_status = device_status;
  }
}

7.Mapper.java

@Select("SELECT * FROM device "
    + "INNER JOIN gateway_device ON gateway_device.device_id=device.id "
    + "INNER JOIN gateway ON gateway.id=gateway_device.gateway_id "
    + "INNER JOIN user_gateway ON user_gateway.gateway_id=gateway.id "
    + "INNER JOIN user ON user.id=user_gateway.user_id and user.id=(SELECT id FROM user WHERE phone=#{phoneno})")
List<DeviceModule> getDeviceNameByUserPhone(@Param("phoneno")String phoneno);

Mysql多对多关系的查询的更多相关文章

  1. MySql多对多关系中外键的应用

    业务需求:用户表r_user保存用户名等信息.现需要给每个用户设置工作基地,一个用户可以有多个工作基地,多个用户也可以有一个工作基地,即多对多关系.(外键,若有两个表A,B,C是A的主键,而B中也有C ...

  2. MySQL约束条件 表关系建立 查询数据

    约束条件 unsigned 无符号 即为非负数,用此类型可以增加数据长度 例如 tinyint最大范围是127,那tinyint unsigned 最大就可以到 127 * 2 通常用在不会出现符号的 ...

  3. [NHibernate]多对多关系(关联查询)

    目录 写在前面 文档与系列文章 多对多关系关联查询 总结 写在前面 上篇文章介绍了nhibernate中对一对多关系进行关联查询的几种方式,以及在使用过程需要注意的问题.这篇文章对多对多关系的查询处理 ...

  4. MySQL基础9-主键约束、外键约束、等值连接查询、一对一和多对多关系

    1.主键约束和外键约束 外键约束 * 外键必须是另一表的主键的值(外键要引用主键!) * 外键可以重复 * 外键可以为空 * 一张表中可以有多个外键! 概念模型在数据库中成为表 数据库表中的多对一关系 ...

  5. django ORM模型表的一对多、多对多关系、万能双下划线查询

    一.外键使用 在 MySQL 中,如果使用InnoDB引擎,则支持外键约束.(另一种常用的MyIsam引擎不支持外键) 定义外键的语法为fieldname=models.ForeignKey(to_c ...

  6. Mysql数据库多对多关系未建新表

    原则上,多对多关系是要新建一个关系表的,当遇到没有新建表的情况下如何查询多对多的SQL呢? FIND_IN_SET(str,strlist) 官网:http://dev.mysql.com/doc/r ...

  7. EF(Entity Framework)多对多关系下用LINQ实现"NOT IN"查询

    这是今天在实际开发中遇到的一个问题,需求是查询未分类的博文列表(未加入任何分类的博文),之前是通过存储过程实现的,今天用EF实现了,在这篇博文中记录一下. 博文的实体类BlogPost是这样定义的: ...

  8. [转]NHibernate之旅(11):探索多对多关系及其关联查询

    本节内容 多对多关系引入 多对多映射关系 多对多关联查询 1.原生SQL关联查询 2.HQL关联查询 3.Criteria API关联查询 结语 多对多关系引入 让我们再次回顾在第二篇中建立的数据模型 ...

  9. Hibernate 中多对多(many-to-many)关系的查询语句

    两个对象: 学生表:Student 课程表:Course 两者的关系是多对多,当查询Student对象,并以Course对象作为条件时的sql语句写法如下: select pa from Studen ...

随机推荐

  1. Python环境搭建-1 Python介绍

    Python翻译成汉语是蟒蛇的意思,并且Python的logo也是两条缠绕在一起的蟒蛇的样子,然而Python语言和蟒蛇实际上并没有一毛钱关系. Python语言是由荷兰程序员Guido van Ro ...

  2. Linux命令:iostat命令

    Linux系统中的 iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视.它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况.同 ...

  3. iOS学习7:iOS沙盒(sandBox)机制(一)之获取沙盒路径及目录说明(转)

    转:http://my.oschina.net/joanfen/blog/151145 一.iOS沙盒机制 iOS的应用只能访问为该应用创建的区域,不可访问其他区域,应用的其他非代码文件都存在此目录下 ...

  4. C++面试常见问题——04链表的逆序与合并

    链表的逆序与合并 链表的逆序 已知一个链表的头指针为head,将该链表逆序. #include<iostream> using namespace std; struct Node{ in ...

  5. heap(堆)

    二叉堆: 以前写过二叉堆,但很少使用,快忘了.最近又查了一些关于堆的资料,于是重新熟悉一下这种数据结构. 一个快速又简单的方式建立二叉堆,仅使用简单vector(或者数组也行): #include & ...

  6. redhat 7.6 查看硬件负载命令

    1.  命令 查看CPU负载 命令1:uptime 命令2:cat  /proc/loadavg 查看CPU信息:cat  /proc/cpuinfo load average:表示平均1分钟内运行的 ...

  7. iOS直播集成和问题总结(阿里云直播)

    https://www.jianshu.com/p/714ce954e628 最近接手公司的直播项目,对以前遗留的问题做处理和优化, 于是顺便看了下阿里云直播的文档,在下面写下对直播的理解和遇到的问题 ...

  8. windows系统 安装与配置zabbix-agent

    1.下载安装包 http://192.168.130.150/zabbix/zabbix_agent-4.0.12-win-amd64-openssl.msi 下载包的链接地址 windowszabb ...

  9. 三 Spring对于延迟加载问题的解决

    Spring提供了延迟加载问题的解决方法 什么是延迟加载? 延迟加载:lazy(懒加载) 执行到该行代码的时候不会发送语句,真正使用这个对象的属性的时候才会发送sql语句进行查询. 类级别延迟加载:指 ...

  10. Android问题:ScrollView默认位置不是最顶部最全解决方案

    描述: Scrollview里面嵌套了一个listview ,这是开发中最寻常的一种布局,遇到的问题是:在这个Scrollview页面默认的起始位置不是最顶部,而是listview的底部. 原因: 在 ...