地区表:

area

id

pid

name

level

1

0

福建

1

2

1

福州

2

3

2

厦门

2

自连接查询数据:

const area= ctx.model.Area.getTableName('tableName');

ctx.model.Area.hasOne(ctx.model.Area, { as: 'To', foreignKey: 'id' });

const data = await ctx.model.Area.find({

where: {id: 2},

attributes: [ 'id', 'pid', 'level', 'name', [app.Sequelize.literal('To.name'), 'p_name'] ],

include: [

{

model: ctx.model.Area,

as: 'To',

required: true, // true:内连接 false: 左外连接

on: {

id: {

[app.Sequelize.Op.eq]: app.Sequelize.col(`${area}.pid`)

}

},

attributes: []

},

],

raw: true,

});

结果:

{

id: 2,

pid: 1,

level: 2,

name: '福州',

p_name: '福建'

}

不过这样会有个问题,第一次访问正常,第二次就会报别名重复的错误

You have used the alias To in two separate associations. Aliased associations must have unique aliases.

Sequelize4.0大致看了一下没找到查询别名的方法,只能通过属性判断,所以在关联前加一层判断别名是否被占用,以此来解决上面问题

if (!ctx.model.Area.associations || !ctx.model.Area.associations.To) {

ctx.model.Area.hasOne(ctx.model.Area, { as: 'To', foreignKey: 'id' });

}

egg连接oracle,egg插件sequelize:表自连接相关推荐

  1. arcserver连接oracle,ArcSDE的二种连接方式(应用服务器连接,直接连接)

    ArcSDE的二种连接方式(应用服务器连接,直接连接) (2013-08-26 09:28:42) 以oracle数据库为例说明: 解释一: ArcSDE的二种连接方式--估且称为客户端负载连接方式和 ...

  2. sql server配置连接oracle数据库,MS SQL Server连接Oracle

    MS SQL Server连接Oracle 1.  安装oracle 10G客户端 要访问oracle数据库必须安装oracle客户端.安装oracle客户端有两种方式,即完整安装和立即安装,这两种方 ...

  3. java jdbc连接oracle数据库连接 不抛出异常,JDBC连接Oracle发生异常的原因

    当你通过JDBC连接Oracle数据库时发生了异常首先应该确认你的JRE是否配置正确,一般oracle10g,JRE1.4以上应当使用ojdbc14.jar. 其次你要确定你的Java语法是否错误,这 ...

  4. python连接oracle报错dpi 1047_python连接Oracle的方式以及过程中遇到的问题

    一.库连接步骤 1.下载cx_Oracle模块 下载步骤 工具 pycharm :File--->右键setting--->找到Project Interpreter  -----> ...

  5. asp.net应用程序无法连接oracle数据库,2020:ASP连接Oracle数据库问题的解决过程

    尽管2020了,但是需求无处不在,ASP连接Oracle数据库问题的解决过程: 注意,本文为梦回大唐版本,盗图严重,纰漏难免,欢迎举报. 一.环境 数据库端:Windows Server 2008 R ...

  6. ArcGis连接oracle失败:ORA-6413:连接未打开

    问题: 通过ARCMap 添加Oracle数据库连接时提示,ORA-6413:连接未打开. 运行环境: ArcGis 10.2 Oracle 10g 解决方法: 通过上网查找解决方法,网友说" ...

  7. python 连接 oracle 循环,4.使用cx_Oracle连接Oracle(高级篇)

    [Python运维]使用cx_Oracle连接Oracle(高级篇) 这节的内容较多,分别是: 使用sys用户连接Oracle数据库 通过函数执行SQL语句 通过读取文件内的内容来执行SQL语句 使用 ...

  8. ao能连接oracle吗,[转载]使用AO连接ORACLE数据库

    昨天做了个程序,是将一个本地SHP文件和一个SDE上的表进行匹配比较,然后生成一个新的SDE要素类.其中涉级到使用AO连接ORACLE数据库的问题和如何从数据库中取出一个表的操作,代码贴下来给大家看看 ...

  9. ftp连接oracle服务器,使用SSL加密连接FTP - 架建SSL安全加密的FTP服务器(图)_服务器应用_Linux公社-Linux系统门户网站...

    四.使用SSL加密连接FTP 启用Serv-U服务器的SSL功能后,就可以利用此功能安全传输数据了,但FTP客户端程序必须支持SSL功能才行. 如果我们直接使用IE浏览器进行登录则会出现图4显示的错误 ...

最新文章

  1. 是否存在两台 MacOS 之间无缝切换的办法?
  2. TeeChart for .NET常用属性总结
  3. HA总结:AWS 网络连接
  4. 多线程中数据的并发访问与保护
  5. asarray java,Java
  6. 常见的时间复杂度函数
  7. CSS3-文本-text-shadow
  8. 地震射线追踪与有限差分正演模拟小软件
  9. linux共享内存变量 tiaojianbianliang,低压集抄系统中Linux共享内存使用分析
  10. Swift 类的使用class
  11. Google Android 向华为“闭源”!华为手机迎来至暗时刻!
  12. 关于一个简单算法的递归和循环转换实现
  13. 7 php 内存泄漏_APP内存优化之内存泄漏
  14. 【spring实战第五版遇到的坑】3.1中的例子报错
  15. ClassNotFound找不到 redis.clients.jedis.JedisShardInfo
  16. php phpmailer 发送邮件
  17. 太阳能心率智能骑行仪(STM32)
  18. C语言课设——宿舍管理
  19. Excel +VBA +ADO+Access数据库分页显示
  20. #include NOIP2008 Junior 双栈排序 ——using namespace wxl;

热门文章

  1. ue4 设置intellisence_UE4的配置界面写入
  2. 计算机操作系统教程讲解视频,计算机操作系统(54集)全套教学视频
  3. linux 指定cpu运行线程,linux 线程与CPU绑定
  4. 常州新北区华为云_常州高新区召开大数据时代健康产业创新大会
  5. OpenShift 4之设置用户/组对项目的访问权限
  6. 使用ExpandoObject将XML转换为动态对象
  7. 开发可扩展的Web API
  8. 使用.NET Core 2开发部署Angular 5项目
  9. mysql proxy php_mysql Proxy读写分离配置或php mysql读写分离类
  10. 初步创建vue/cli工程教程