mysql中3张表如何关联查询_SQL Server中三个表两两关联 怎么实现查询??急!!...

展开全部

select a.*

from 学员表 a

inner join 校区表 b on a.所在学校=b.所在学校

inner join 管理员表 c on b.区域=c.区域

where c.用户名=@用户名 and c.密码=@密码

注意:32313133353236313431303231363533e59b9ee7ad9431333366306565最好把登陆和列表查询分开来做,因为无论是从安全还是程序实现的角度来看,都比较好。

80d16e480894663fcab4b2205b2dbbd8.png

扩展资料:

mysql三张表联合查询总结

一、表结构

1、图片表(存放图片)

CREATE TABLE `tb_pic` (

`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增长 id',

`url` varchar(255) DEFAULT NULL COMMENT '图片 url 路径',

`description` varchar(255) DEFAULT NULL COMMENT '图片描述',

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='图片表';

2、标签表(存放标签)

CREATE TABLE `tb_flag` (

`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增长 id',

`name` varchar(255) DEFAULT NULL COMMENT '标签名称',

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='标签表';

3、图片标签链接表(图片、标签中间表)

CREATE TABLE `tb_pic_flag_link` (

`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增长 id',

`pic_id` int(11) DEFAULT NULL COMMENT '图片 id',

`flag_id` int(11) DEFAULT NULL COMMENT '标签 id',

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='图片标签链接表';

二、实现的效果

1、查询单张图片的描述

效果:

a46092ac66ecf1c8461c0151ba4de907.png

查询语句:

SELECT p.id, p.url, p.description, GROUP_CONCAT(f.`name`)

from tb_pic p, tb_pic_flag_link l, tb_flag f

where p.id = l.pic_id and l.flag_id=f.id and p.id=1;

2、查询所有图片的描述

效果:

ccd7a6ceb7c03c219578aa21227ce717.png

查询语句:

SELECT p.id, p.url, p.description, GROUP_CONCAT(f.`name`)

from tb_pic p, tb_pic_flag_link l, tb_flag f

where p.id = l.pic_id and l.flag_id=f.id GROUP BY p.id;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值