难:应该有人问过的,有难度的字符串拼接查询!!!!
有数据:
pub_users表
-----------------------
userno username password
000000 aaa b
000001 bbb b
000002 ccc b
SYS_UsersToRoles表
------------------------
userno roleno
000002 00001
000002 00002
000001 00001
000001 00004
期望得到结果
-----------
userno username password roleno
000000 aaa b __
000001 bbb b 00001,00004
000002 ccc b 00001,00002
---自己写的差距比较大的脚本------------
SELECT
u.userno, logname,urole.roleno
FROM
PUB_USERS as u
left join dbo.SYS_UsersToRoles as Urole
on Urole.userno = u.userno
==========================================
测试数据脚本:
IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = object_id(N'[pub_users]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
CREATE TABLE pub_users
(
userno pub_userno PRIMARY KEY CLUSTERED ,
logname pub_username NOT NULL default(''),
password varchar(80) NOT NULL default(''),
)
GO
IF not exists (SELECT * FROM dbo.sysobjects WHERE id = object_id(N'[SYS_UsersToRoles]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
CREATE TABLE SYS_UsersToRoles
(
userNO pub_userno not null,
roleNO char(5) NOT NULL,
)
GO
insert into pub_users (userno,logname,password)
values('000000','aaa','b')
GO
insert into pub_users (userno,logname,password)
values ('000001','bbb','b')
GO
insert into pub_users (userno,logname,password)
values ('000002','ccc','b')
GO
insert into dbo.SYS_UsersToRoles (userno,roleNO)
values ('000002','00001')
insert into dbo.SYS_UsersToRoles (userno,roleNO)
values ('000002','00002')
GO
pub_users表
-----------------------
userno username password
000000 aaa b
000001 bbb b
000002 ccc b
SYS_UsersToRoles表
------------------------
userno roleno
000002 00001
000002 00002
000001 00001
000001 00004
期望得到结果
-----------
userno username password roleno
000000 aaa b __
000001 bbb b 00001,00004
000002 ccc b 00001,00002
---自己写的差距比较大的脚本------------
SELECT
u.userno, logname,urole.roleno
FROM
PUB_USERS as u
left join dbo.SYS_UsersToRoles as Urole
on Urole.userno = u.userno
==========================================
测试数据脚本:
IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = object_id(N'[pub_users]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
CREATE TABLE pub_users
(
userno pub_userno PRIMARY KEY CLUSTERED ,
logname pub_username NOT NULL default(''),
password varchar(80) NOT NULL default(''),
)
GO
IF not exists (SELECT * FROM dbo.sysobjects WHERE id = object_id(N'[SYS_UsersToRoles]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
CREATE TABLE SYS_UsersToRoles
(
userNO pub_userno not null,
roleNO char(5) NOT NULL,
)
GO
insert into pub_users (userno,logname,password)
values('000000','aaa','b')
GO
insert into pub_users (userno,logname,password)
values ('000001','bbb','b')
GO
insert into pub_users (userno,logname,password)
values ('000002','ccc','b')
GO
insert into dbo.SYS_UsersToRoles (userno,roleNO)
values ('000002','00001')
insert into dbo.SYS_UsersToRoles (userno,roleNO)
values ('000002','00002')
GO
...全文
相关推荐
MySql逗号拼接字符串查询的两种方法
在MySQL中,有时候我们需要对字符串进行处理,特别是当我们要查询某个字段值是否包含在另一组逗号分隔的字符串中时。本篇文章将详细介绍两种在MySQL中实现逗号拼接字符串查询的方法。
python模拟登录新浪微博
1.前言 从模拟登陆这件事上,可以看出公司之间的技术水平,对安全的重视程度。之前做过豆瓣的模拟登陆(链接),直接做一个post请求就OK,简直easy. 但是到新浪微博上,这个方法完全行不通,新浪微博简直了!!!各种加密,各种跳转,登陆过程神烦!!!在参考了很多的博文,历经无数次失败之后,终于,我也成功登陆上了!(●'◡'●) 2.登陆过程分析 我一直用的是chrome浏览器,所
python使用cookie登陆新浪微博用户信息
在上一篇博客python模拟新浪微博登陆之获取cookies中,已经实现了登陆新浪微博并把cookie保存了下来。接下来通过得到的cookie去访问新浪微博其他页面,并获取我们想要的信息。顺便一提,我的软件是python2.7.10(64位),IDE是pycharm,win8.1系统环境。所用到的包是base64、rsa、binascii、re、requests。这里,我首先通过访问自己新浪微博主页
sql 多行合并某一列字符串拼接的示例
**构建子查询**:使用子查询来获取需要拼接的字符串值。子查询应返回一个逗号分隔的字符串列表,其中每个元素都是一个需要合并的值。3.
mysql 拼接字符串和拼接一列的值
mysql 拼接字符串查询语句。 普通拼接字符串和拼接某一列的所有值。


