Node.js的mysql执行多表联合查询

时间:2022-08-19 09:52:34

数据库(test)中的表结构(admin、user)

Node.js的mysql执行多表联合查询

//执行多表结合查询
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
port : 3306,
database : 'test',
user : 'root',
password : ''
})
connection.connect(function(err){
if(err){
console.log('与mysql数据库建立连接失败');
}else{
console.log('与mysql数据库建立连接成功');
connection.query('select admin.id,admin.username,admin.password,user.id,user.username from admin inner join user on admin.username = user.username',function(err,result){
if(err){
console.log('查询数据失败');
}else{
console.log('查询数据成功');
console.log(result);
connection.end();
}
})
}
})
//[{id:2,username:'kong',password:'123'}]
//注意:联合查询时,select + ...字段,如果字段名相同(虽然表名不同)会使后一个字段覆盖前一个字段,产生我们不想要的结果
//以上例子admin表和user表的id、username字段由于名字相同,导致前面的被覆盖,最后查询出来的结果是user.id、user.username、admin.password
//使用*也会导致覆盖问题 //解决办法
//方案一(对重复的字段使用别名)
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
port : 3306,
database : 'test',
user : 'root',
password : ''
})
connection.connect(function(err){
if(err){
console.log('与mysql数据库建立连接失败');
}else{
console.log('与mysql数据库建立连接成功');
connection.query('select admin.id,admin.username,admin.password,user.id id1,user.username username1 from admin inner join user on admin.username = user.username',function(err,result){
if(err){
console.log('查询数据失败');
}else{
console.log('查询数据成功');
console.log(result);
connection.end();
}
})
}
})
//注意,select + ...字段使用了别名id1和username1
//[{id:1,username:'kong',password:'123',id1:2,username1:'kong'}] //方案二(使用nestTables属性并将属性值设定为true)
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
port : 3306,
database : 'test',
user : 'root',
password : ''
})
connection.connect(function(err){
if(err){
console.log('与mysql数据库建立连接失败');
}else{
console.log('与mysql数据库建立连接成功');
connection.query({sql:'select admin.id,admin.username,admin.password,user.id,user.username from admin inner join user on admin.username = user.username',nestTables:true},function(err,result){
if(err){
console.log('查询数据失败');
}else{
console.log('查询数据成功');
console.log(result);
connection.end();
}
})
}
})
//注意和方案一查询的数据格式不一样
//[{admin:{id:1,username:'kong',password:'123'},user:{id:2,username:'kong'}}] //方案三(使用nestTables属性并将属性值设定为一个分隔字符)
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
port : 3306,
database : 'test',
user : 'root',
password : ''
})
connection.connect(function(err){
if(err){
console.log('与mysql数据库建立连接失败');
}else{
console.log('与mysql数据库建立连接成功');
connection.query({sql:'select admin.id,admin.username,admin.password,user.id,user.username from admin inner join user on admin.username = user.username',nestTables:'_'},function(err,result){
if(err){
console.log('查询数据失败');
}else{
console.log('查询数据成功');
console.log(result);
connection.end();
}
})
}
})
//[{admin_id:1,admin_username:'kong',admin_password:'123',user_id:2,user_username:'kong'}]

Node.js的mysql执行多表联合查询的更多相关文章

  1. 理解mysql执行多表联合查询

    阅读目录 一:inner join(内连接) 二:left join(左连接) 三:right join(右连接) 四:cross join(交叉连接) 五:union操作 六:node+mysql ...

  2. MySQL两个表联合查询并按时间排序

    有一张资金记录表,一张金币记录表,想以时间为单位,降序合并排列他们之间的信息,查询SQL如下: select * from (select * from t_money_logs union sele ...

  3. node.js连接MySQL操作及注意事项

    node.js作为服务端的js运行环境已经出现了有几年了,最近我有个朋友也在做这方面的开发,但是也是刚刚接触,遇到了很多坑.前几天他们在操作数据库的时候出现了点问题,后来我们一起看了看,其实都是nod ...

  4. 分享Node.js + Koa2 + MySQL + Vue.js 实战开发一套完整个人博客项目网站

    这是个什么的项目? 使用 Node.js + Koa2 + MySQL + Vue.js 实战开发一套完整个人博客项目网站. 博客线上地址:www.boblog.com Github地址:https: ...

  5. Dynamic CRM 2013学习笔记(九)CrmFetchKit.js介绍:Fetchxml、多表联合查询, 批量更新

    CrmFetchKit.js是一个跨浏览器的一个类库,允许通过JavaScript来执行fetch xml的查询,还可以实现批量更新,分页查询等.目前已支持Chrome 25, Firefox 19 ...

  6. 使用node js 操作 Mysql 数据库

    使用node js 操作 Mysql 数据库 http://www.nodejs.org/ //node js 数据库操作 MySQL //使用https://github.com/felixge/n ...

  7. Node.js 连接 MySQL 并进行数据库操作

    Node.js 连接 MySQL 并进行数据库操作  按照这篇操作mysql的指引,我远程操作了我另一台电脑的mysql数据库. var mysql = require('mysql'); var c ...

  8. Node.js连接MySQL数据库及构造JSON的正确姿势

    做一下整理,以前也很随意的引入包链接数据库,后来发现常常连接出问题,异常退出,后来使用在网上一个方法解决问题,网址由于书签丢失,抱歉不能引用了.再有就是简单的模块化下,使得目录合理点,再有就是说明一下 ...

  9. APNs功能之Node.js和Mysql应用总结

    APNs功能之Node.js和Mysql应用总结 这篇文档主要是总结Node.js和Mysql的学习心得体会.当然也可以看作是此前所写的消息推送服务的续篇. 简单描述下应用背景,我们的应用需要实现苹果 ...

随机推荐

  1. IOS开发基础知识--碎片50

      1:Masonry 2个或2个以上的控件等间隔排序 /** * 多个控件固定间隔的等间隔排列,变化的是控件的长度或者宽度值 * * @param axisType 轴线方向 * @param fi ...

  2. VBA嘘嘘嘘(1)——将Excel数据填入到已存在的Word模板表格(实例应用)

    傻瓜可以写出机器读懂得代码,但写出让人能读懂的代码的是优秀程序员 Sub 填充() Application.ScreenUpdating = False 'ScreenUpdating 是控制你的ex ...

  3. hibernate 实现多表连接查询(转载)

    http://www.cnblogs.com/lihuiyy/archive/2013/03/28/2987531.html 为了方便,直接粘过来,方便查看.不收藏了 Hibernate主要支持两种查 ...

  4. OC中NSDictionary和NSSet简单操作

    /** *  字典 存放键值对类型的数据 存放数据是无序的 */ // 字典在控制台输出是用{}包括起来的 // NSDictionary 不可变字典 // 1.创建对象 // 初始化方法 NSDic ...

  5. 关于MySQL数据库如何按时间查询

    这里做了几个测试 select * from simingpai where TIMESTAMP(createTime) >= '2015-9-6'; select * from simingp ...

  6. 2014年度辛星css教程夏季版第三节

    第二节我们讲述的几乎全是CSS的选择器,那么下面这一节我们来讲一下CSS的颜色和文本的一些东西,虽然我对调色不大敏感,但是对于颜色还是比较感兴趣的. *********CSS中的颜色********* ...

  7. 关于异常的疑难解答:System.Runtime.InteropServices.COMException

    COMException exception is thrown when an unrecognized HRESULT is returned from a COM method call.&qu ...

  8. 运用Python语言编写获取Linux基本系统信息(三):Python与数据库编程,把获取的信息存入数据库

    运用Python语言编写获取Linux基本系统信息(三):Python与数据库编程 有关前两篇的链接: 运用Python语言编写获取Linux基本系统信息(一):获得Linux版本.内核.当前时间 运 ...

  9. bzoj:3400 [Usaco2009 Mar]Cow Frisbee Team 奶牛沙盘队

    Description     农夫顿因开始玩飞盘之后,约翰也打算让奶牛们享受飞盘的乐趣.他要组建一只奶牛飞盘 队.他的N(1≤N≤2000)只奶牛,每只部有一个飞盘水准指数Ri(1≤Ri≤10000 ...

  10. c++ 实现哈夫曼树中遇见的问题

    为了提高效率求得 叶子 节点中权值最小的两个元素,我们需要使用堆数据结构,它可以以O(logn)的复杂度 取得n个元素中的最小元素.为了绕过堆的实现,我们可以使用标准模板库中相应的标准模板—优先队列. ...