table A
sid
1
2
3
4
table B
uid sid pass
c55 1 y
eb4 2 n
c55 3 n
08d 3 y
c55 3 n
08d 2 y
结果集应该如下:
uid sid
c55 2
c55 3
c55 4
eb4 1
eb4 2
eb4 3
eb4 4
08d 1
08d 4
CREATE TABLE #student
(
UId VARCHAR(10)
,NAME NVARCHAR(20)
)
INSERT INTO #student
SELECT 'c55', 'x' UNION ALL
SELECT 'eb4', 'x' UNION ALL
SELECT 'c55', 'x' UNION ALL
SELECT '08d', 'x' UNION ALL
SELECT 'c55', 'x' UNION ALL
SELECT '08d', 'x' UNION ALL
SELECT 'NOT', '没有参加过考试的学生'
CREATE TABLE #passhis
(
UId VARCHAR(10)
,sid INT
,pass CHAR(1)
)
INSERT INTO #passhis
SELECT 'c55', 1, 'y' UNION ALL
SELECT 'eb4', 2, 'n' UNION ALL
SELECT 'c55', 3, 'n' UNION ALL
SELECT '08d', 3, 'y' UNION ALL
SELECT 'c55', 3, 'n' UNION ALL
SELECT '08d', 2, 'y'
CREATE TABLE #course
(
sid VARCHAR(10)
,NAME NVARCHAR(20)
)
INSERT INTO #course
SELECT 1,'y' UNION ALL
SELECT 2,'yu' UNION ALL
SELECT 3,'xx' UNION ALL
SELECT 4,'xx'
SELECT DISTINCT s.UId,c.sid
FROM #student AS S
CROSS JOIN #course AS C
WHERE NOT EXISTS (SELECT 1 FROM #passhis P WHERE S.UId=P.UId AND C.sid=P.sid AND p.pass='y')
--LEFT JOIN #passhis P ON S.UId=P.UId AND C.sid=P.sid --left join /exists 都可以
--WHERE p.pass='n' OR p.pass IS NULL
DROP TABLE #student
DROP TABLE #passhis
DROP TABLE #course
---第一种方法定义起止时间: declare @begin_date datetime declare @end_date datetime select @begin_date = getdate() SELECT COUNT(1) -------要执行的SQL语句 select * from table ---------- select @end_...
该用户与可信 SQL Server 连接无关联 问题一、忘记了登录Microsoft SQL Server 2005 的sa的登录密码 解决方法:先用windows身份验证的方式登录进去,然后在‘安全性’-‘登录’-右键单击‘sa’-‘属性’,修改密码...
DELETE [子表] WHERE [关联Id] = @Id DELETE [主表] WHERE [Id] = @Id GO 执行方法:EXECUTE [存储过程] @Id 解决办法: 1、在设计数据库表时,通过设置级联删除操作来完成。 2、可以写触发器完成...
在介绍update之前先推荐两个备份表的sql。 Select * into table_2 from table_1//table2可以不存在 Insert into table_2(column1,column2) select column1,column2 from table_1 //需要先创建table_2若不存在 ...
SQL基础知识整理: 常见的SQL面试题:经典50题 三、50道面试题 2.汇总统计分组分析 3.复杂查询 sql面试题:topN问题 4.多表查询 【面试题类型总结】这类题目属于行列如何互换,解题思路如下: 其他面试题: ...
![图片说明]... 图一 表 与 图二 表 圈圈的字段关联  图二表 相同的有重复 只把把图一关联相同的 最大中 其它为空
SQL Server 三个表及以上的关联查询 三表关联查询 select u.user_id,u.user_name,u.user_sex,c.college_name,s.subject_name,s.achievement from user u LEFT JOIN subject s ON s.user_number=u. user_id LEFT ...
在SQL语句中,关于表连接,若按照表的数量来划分,可以划分为单表连接、两表连接和两表以上连接,在本篇文章中,主要讲解两表连接,其他多表连接原理一样。 关于表连接有很多种类,本文主要讲解交叉连接,内连接,...
MySQL、SQLServer多表关联更新
update a set a.KSMC = b.name from JC_KSXXB a inner join chisdb_ymyy..zd_unit_code b on a.KSDM = b.code 转载于:https://www.cnblogs.com/zhangdongsheng/p/9747829.html
update a set a.name1 = b.name1, a.name2=b.name2from 表A a, 表B b where a.id=b.id
文章目录准备知识定义外键使用SSMS工具定义外键使用SQL方式定义外键删除外键使用SSMS工具删除外键方式一:在对象资源管理器中删除主键方式二:在表设计器中删除主键使用SQL方式删除外键 准备知识 外键...
delete 表A from [表A] as a inner join [表B] as b on a.ID=b.ID
SELECT TOP (#{limit}) storeId, intermediaryId, storeAddress, storeName, storePhone, principal, principalPhone, isEnable ... SELECT ROW_NUMBER() OVER (ORDER BY b.intermedi
A表 TYS_XM_RELATION2019 B表 TYS_XMYS2019(部分字段) 目标 :将B表的ysxmh用A表的newysxmh代替。代替条件A表的oidysxmh = B表的ysxmh update B set B.ysxmh = A.newysxmh from A,B where A.oldysxmh = B....
内连接和外连接的区别主要体现在返回数据上,内连接返回的是符合连接条件和查询条件的记录,外连接返回的数据包含了不符合连接条件没有建立关联的记录。 内连接 A表和B表通过id字段建立连接,返回的是A中id和B...
一个歌手不止演唱一首歌,所以tb2中是艺人演唱所有歌曲的集合。tb1中同一个歌手可能出现好几次 补齐时候需根据tb1中艺人名称去tb2也就是艺人歌曲汇总表中查找相同艺人演唱的歌曲名称。 需要在艺人名相同情况下...
利用SQL Server进行关联分析 前一节介绍了数据仓库的构建,本节介绍如何利用SQL Server数据库进行关联分析,数据仍然采用上次构建数据仓库时所使用的数据,讲述方式仍然采取截图的方式,之前作者已经在word中有所...
--错误写法: update JFP_DEPT_copy a set a.de_name = (select b.de_name from JFP_DEPT_copy b where b.de_deptcode = a.de_parentcode) + a.de_name ...---正确写法: 要修改的表不能命名别名,可以用...
UPDATE sys_admin SET sys_admin.fullName=sys_user.fullName FROM sys_user where sys_user.userId=sys_admin.userId and sys_user.createDate >'2018-07-15 16:08:18'
解决方案:用户 'sa' 登录失败。原因: 未与信任 SQL ...身份验证时,遇到这个问题,所以将我的解决方案整理一下,供有同样遭遇的朋友分享:问题简述:服务器配置:windowsxp framework2.0 sqlserver2000用户 'sa...
好像sql被确定好的,无法改变!
继上篇在sql server中创建链接服务器访问oracle数据库:http://www.cnblogs.com/527289276qq/p/4770379.html本文介绍在sql server中创建链接服务器访问sql server数据库。方法:打开SSMS,新建程序,执行下面sql语句...
在SQL中,经常用到关联查询,比如select a.* from A a inner join B b on a.PId=b.FId where 条件,SQL中也支持类似的关联更新和关联删除。 关联更新语法: update a set a.字段=” from A ...
没别的 就是加索引 聚集索引 或者复合非聚集索引 都行 俩个表都需要加 如果不加索引 比如 主表ID是 3 2 1 子表没加索引 ...每一次查询主表 1 的时候会遍历一次全子表 也就是 查...
SQL Server 2019 新特性之 SQL Server大数据群集 介绍(一) 从开始SQL Server 2019 预览,SQL Server 大数据群集允许你部署的 Kubernetes 上运行的 SQL Server、 Spark 和 HDFS 容器的可缩放群集。 并行运行这些...
安装好SQLServer2005(或者装了Visual Studio 2008后自带的SQLServer2005)用SQL Server身份验证的登录的时候有时候会发生这样的情况: Server连接无关联,错误:18452" title="用户登录失败,该用户与可信SQL ...
在不同的sqlserver数据库中,需要进行不同数据库中的表在同一sql语句中进行关联查询,可以事先在服务器上的SqlServer数据库中先执行以下sql语句: (1)exec sp_addlinkedserver @server= 'WLSQL', @srvproduct= ''...