主表SQL(tp_member)

CREATE TABLE `tp_member` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
`username` varchar(50) DEFAULT NULL COMMENT '用户名',
`password` varchar(50) DEFAULT NULL COMMENT '密码',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

tp_basic表SQL

CREATE TABLE `tp_basic` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`member_id` mediumint(8) DEFAULT NULL COMMENT 'uid',
`city` varchar(50) DEFAULT NULL COMMENT '城市',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

tp_photo表SQL

CREATE TABLE `tp_photo` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`member_id` mediumint(8) DEFAULT NULL,
`url` varchar(80) DEFAULT NULL COMMENT '链接地址',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

member 的controller:

<?php
namespace app\admin\controller;
use app\admin\model\Member as MemberModel;
use think\Controller;
use think\Db;
use think\Request;
use app\admin\logic\Ceping; /**
* 关于TP5的一对一、一对多同时存在的关联查询
* Class Member
* @package app\admin\controller
*/
class Member extends Controller
{
public function index()
{
$member=new MemberModel();
//查询一条ID为2的用户数据;toArray()是将结果转为数组。
$list=$member->with('photo,basic')->find('2')->toArray();
dump($list);
}
}

member 的MODEL:

<?php
namespace app\admin\model;
use think\Model; /**
* 主表(Member)的模型
* Class Member
* @package app\admin\model
*/
class Member extends Model
{
/**
* 建立和basic的关联
* hasOne方法的参数包括:hasOne('关联模型名','外键名','主键名',['模型别名定义'],'join类型');
*/
public function basic()
{
return $this->hasOne('Basic','member_id');
} /**
* 建立和photo的关联
* hasMany方法的参数包括:hasMany('关联模型名','外键名','主键名',['模型别名定义']);
*/
public function photo()
{
return $this->hasMany('Photo','member_id');
}
}

basic 的MODEL:

<?php

namespace app\admin\model;
use think\Model; /**
* basic 表模型
* @package app\admin\model
*/
class Basic extends Model
{
/**
* 建立和member表(主表)的关联
* belongsTo的参数包括::belongsTo('关联模型名','外键名','关联表主键名',['模型别名定义'],'join类型');
*/
public function member()
{
return $this->belongsTo('Member');
}
}

photo 的MODEL:

<?php

namespace app\admin\model;
use think\Model; /**
* photo 表模型
* @package app\admin\model
*/
class Photo extends Model
{
/**
* 建立和member表(主表)的关联
* belongsTo的参数包括::belongsTo('关联模型名','外键名','关联表主键名',['模型别名定义'],'join类型');
*/
public function member()
{
return $this->belongsTo('Member');
}
}

访问http://localhost/tp_test/public/index.php/admin/Member/index打印出的数据如下

关于TP5的一对一、一对多同时存在的关联查询的更多相关文章

  1. MyBatis-Plus不写任何resultMap和SQL执行一对一、一对多、多对多关联查询

    对于一对一,一对多的关联查询,Mybatis-Plus官方示例(mybatis-plus-sample-resultmap)在处理时,需要编写查询方法及配置resultMap,并且写SQL. 为了简化 ...

  2. day 69-70 一对一 一对多 多对一联表查询

    day 69 orm操作之表关系,多对多,多对一 多对一/一对多, 多对多{类中的定义方法} day69 1. 昨日内容回顾 1. 单表增删改查 2. 单表查询API 返回QuerySet对象的: 1 ...

  3. mybatis实现多表一对一,一对多,多对多关联查询

    原文:https://blog.csdn.net/m0_37787069/article/details/79247321 1.一对一关键字:association作用:针对pojo对象属性的映射  ...

  4. mybatis 一对多和多对一关联查询

    首先  数据库量表之间字段关系(没有主外键) studentmajor表的id字段对应student表里major字段 两个实体类 package com.model; import java.uti ...

  5. 7.Mybatis关联表查询(这里主要讲的是一对一和一对多的关联查询)

    在Mybatis中的管理表查询这里主要介绍的是一对一和一对多的关联查询的resultMap的管理配置查询,当然你也可以用包装类来实现.不过这里不说,做关联查询的步骤可以简单的总结为以下的几步: 1.分 ...

  6. JPA级联(一对一 一对多 多对多)注解【实际项目中摘取的】并非自己实际应用

    下面把项目中的用户类中有个:一对一  一对多  多对多的注解对应关系列取出来用于学习      说明:项目运行正常 问题类:一对多.一对一.多对多 ============一对多 一方的设置 @One ...

  7. spring data jpa关联查询(一对一、一对多、多对多)

    在实际过往的项目中,常用的查询操作有:1.单表查询,2.一对一查询(主表和详情表)3.一对多查询(一张主表,多张子表)4.多对多查询(如权限控制,用户.角色多对多).做个总结,所以废话不多说. 使用i ...

  8. Python进阶----表与表之间的关系(一对一,一对多,多对多),增删改查操作

    Python进阶----表与表之间的关系(一对一,一对多,多对多),增删改查操作,单表查询,多表查询 一丶表与表之间的关系 背景: ​ ​ ​  ​ ​ 由于如果只使用一张表存储所有的数据,就会操作数 ...

  9. mybatis 一对一 一对多 多对多

    一对一 一对多 多对多

随机推荐

  1. <Spark><Programming><RDDs>

    Introduction to Core Spark Concepts driver program: 在集群上启动一系列的并行操作 包含应用的main函数,定义集群上的分布式数据集,操作数据集 通过 ...

  2. WebService的一种简单应用方式入门

    1.什么是WebService? WebService即Web服务,简单来讲,他就是一种跨编程语言和跨操作平台的远程调用技术. 2.Web服务: Web服务是基于HTTP和XML的技术:HTTP是互联 ...

  3. 【Python】requests.post请求注册实例

    #encoding=utf-8 import requests import json import time import random import multiprocessing from mu ...

  4. XML Schema——笔记整理

    什么是 XML Schema? 定义可出现在文档中的元素 定义可出现在文档中的属性 定义哪个元素是子元素 定义子元素的次序 定义子元素的数目 定义元素是否为空,或者是否可包含文本 定义元素和属性的数据 ...

  5. 【转】如何在win10(64位系统)上安装apache服务器

    如何在win10(64位系统)上安装apache服务器 今天装了Apache服务器,下面是我总结的方法: 一,准备软件 1.64位的apache版本 传送门:http://www.apacheloun ...

  6. 20165228 学习基础和C语言基础调查

    ========== 做中学读后感 我依然认为兴趣与自觉性是推动一个人进步的两大因素,他们之间的区别是"兴趣"带来的影响更多是主动性的学习,而"自觉"则是略显被 ...

  7. [LeetCode&Python] Problem 746. Min Cost Climbing Stairs

    On a staircase, the i-th step has some non-negative cost cost[i] assigned (0 indexed). Once you pay ...

  8. Bagging-Adaboost-RF的粗糙理解

    三种方法都是组合方法,组合方法是使用多个分类器进行投票[构造每个分类器的样本都是通过有放回抽样得到的] 1.Bagging(装袋):k次抽样,训练k次,得到k个模型(分类器),等权重投票 2.Adab ...

  9. liblinear使用总结

    liblinear是libsvm的线性核的改进版本,专门适用于百万数据量的分类.正好适用于我这次数据挖掘的实验. liblinear用法和libsvm很相似,我是用的是.exe文件,利用python的 ...

  10. Python3实现生成验证码图片

    import randomfrom PIL import Image, ImageFont, ImageDrawfrom io import BytesIOfrom ttt import settin ...