十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
用一条sql语句就行
成都创新互联专注于墨玉网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供墨玉营销型网站建设,墨玉网站制作、墨玉网页设计、墨玉网站官网定制、小程序开发服务,打造墨玉网络公司原创品牌,更为您提供墨玉网站排名全网营销落地服务。
设表结构如下:
编辑员表 editor: id, name,pwd,newsblocks
新闻版块表 news : id, name
sql语句如下:
SELECT editor.*,GROUP_CONCAT(news.`name`) AS newsblock_name FROM editor
LEFT JOIN news ON INSTR(editor.`newsblocks`, news.`id`)
GROUP BY editor.id
这是查询结果:
其中 newsblock_name就是对应的新闻版块名
各版本功能对比
从我最开始接触的SQL SERVER 2000 开始,已经经历了如此多的版本。下面简单阐述下各个版本新增的功能:
SQL SERVER 2000
日志传送
索引视图
SQL SERVER 2005
分区
数据库镜像
(只有 SQL Server 2005 Enterprise Edition SP1 和更高版本支持异步数据库镜像。)
联机索引
数据库快照
复制
故障转移群集
SQL SERVER 2008
数据压缩
资源调控器
备份压缩
SQL SERVER 2008 R2
R2标志表示这是SQL Server的一个中间版本,而不是一个主版本 .此版本目前我的客户中,使用还是非常多,性能稳定,虽然新增功能比较少:
新增数据中心版,最大支持256核.
Unicode压缩
(为Unicode存储提供一个简单的压缩方案,通过Unicode压缩,可以减少Unicode字符对空间的占用)
SQL SERVER 2012
AlwaysOn
Columnstore 索引
增强的审计功能
大数据支持
SQL SERVER 2014
这个版本的新特效特别多,和非常有用,可以多了解下.
内存优化表
备份加密
针对基数估计的新设计
AlwaysOn 增强功能
延迟持续性 (将部分或所有事务指定为延迟持久事务,从而能够缩短延迟)
分区切换和索引生成
(官网写得Partition Switching and Indexing,感觉是有问题的,其实就是分区表的单个分区可以重建)
列存储索引
缓冲池扩展 就是使用SSD 扩展缓冲池
增量统计信息
资源调控器增强功能
(--之前只能控制CPU和内存,2014 开始可以控制IO)
DBCC CHECK 支持maxdop 提示
SQL SERVER 2016
全程加密技术(Always Encrypted)
JSON支持
多TempDB数据库文件
(以前也是支持的,在2014 开始就在error log提示,2016中,在安装时就可以设置。)
Query Store
(前几天去参加微软的培训还讲到的,挺不错的功能。可以帮助解决参数嗅探的问题,数据库升级的时候也可以用到它)
支持R语言
Live Quer y St at ist ics
(可以更清晰的看到执行计划的开销(水流式))
SQL SERVER 2017
可恢复的在线索引重建
允许您在发生故障(例如故障切换到副本或磁盘空间不足)之后恢复在线索引重建操作。
IDENTITY_CACHE option
当此选项设置为OFF时,它可以避免在服务器意外重新启动或故障切换到辅助服务器的情况下,标识列值的间隙
CLR在.NET Framework中使用代码访问安全性(CAS),该框架不再支持安全边界。
使用PERMISSION_SET = SAFE创建的CLR程序集可能能够访问外部系统资源,调用非托管代码并获取sysadmin权限
图表数据库功能
用于多对多关系建模
Read-scale availability groups without cluster
可以在不依赖集群的情况下,搭建读的可用性组,分担读压力。不过此时不能实现高可用。
R/PYTHON 机器学习方面的功能
总结
总的来说,SQL SERVER 正在变得越来越好,希望越来越多的人更多的了解他.如果有什么其他疑问欢迎讨论。
1/ 先建立一个字符连接函数:
CREATE FUNCTION [dbo].[UDF_UniteStr](@FlagId int)
RETURNS NVARCHAR(max)
AS
BEGIN
DECLARE @NameStr VARCHAR(max)
SET @NameStr = ''
SELECT @NameStr= @NameStr+ ' ' + tt.bname
FROM (SELECT [AB].aid,A.name as aname,[AB].bid,B.name as bname
FROM [AB] INNER JOIN A ON [AB].aid=A.id
INNER JOIN B ON [AB].bid=B.id
) tt
WHERE tt.aid= @FlagId
SET @NameStr= STUFF(@NameStr,1 ,1 ,'')
RETURN @NameStr
END
GO
2/ 调用该函数进行查询即可:
SELECT Id,name,bname=dbo.[UDF_UniteStr](id)
FROM A
明天楼主的意思了,楼主是想通过type查询且仅查询产品的信息,那么根本不需要关联type表;
select p.pname,p.price from product p
where exists(select 1 from type t,middle m where t.tid=m.tid and m.pid=p.pid
and t.tname like '%南亚%')
根本不需要考虑去过滤重复,不需要distinct,因为你要查询的就是product表的信息;