热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SQL查询题解的典型应用

有三個表的結構和記錄如下:tableAIDRIDFID1R1231232R04563R11789tableBID

有三個表的結構和記錄如下:
tableA
ID  RID    FID
===============
1   R123   123
2   R0     456
3   R11    789 

tableB
ID  FID
========
1   12
2   123
3   789


tableC
ID  PID
========
1   R11
2   123,R0,33
3   R0,12

求一高效的SQL語句或存儲過程實現:當tableC中PID號即不存在於tableA的RID也不存在於tablcB中FID中時,將此記錄篩選出來。tablcC中的PID字段可以存儲一個或多個RID或FID號

比如,上述中要將tableC表中的ID為2的記錄篩選出來,因為PID中33是不存在的

tablcA現有幾千條記錄
tablcB現有三萬多條記錄  此表為VFP DBF數據表,現已做了個鏈接服務器,將它挂到SQL SERVER中,可以當普通SQL SERVER數據表查詢使用,不過查詢速度有點慢
tablcC現有上萬條記錄

CREATE TABLE ta(ID INT,RID VARCHAR(10),FID VARCHAR(10))
INSERT Ta SELECT 1,   'R123',   '123'
UNION ALL SELECT 2,   'R0'   ,  '456'
UNION ALL SELECT 3,   'R11'   , '789' 
CREATE TABLE tb(ID INT,FID VARCHAR(10))
INSERT Tb SELECT 1,12
UNION ALL SELECT 2,123
UNION ALL SELECT 3,789
CREATE TABLE tc(ID INT,PID VARCHAR(100))
INSERT Tc SELECT 1,   'R11'
UNION ALL SELECT 2,   '123,R0,33'
UNION ALL SELECT 3,   'R0,12'

SELECT c.*,COUNT(*) CNT FROM tc c
INNER JOIN
(
SELECT RID FROM Ta
UNION
SELECT FID FROM tb) x
ON CHARINDEX(','+x.RID+',',','+c.PID+',')>0
GROUP BY ID,PID
HAVING COUNT(*)<>LEN(REPLACE(PID,',',',,'))-LEN(PID)+1

DROP TABLE ta,tb,tc
 


推荐阅读
  • 本文介绍了多种将多行数据合并为单行的方法,包括使用动态SQL、函数、CTE等技术,适用于不同的SQL Server版本。 ... [详细]
  • 本文详细介绍如何在Spring Boot项目中集成和使用JPA,涵盖JPA的基本概念、Spring Data JPA的功能以及具体的操作步骤,帮助开发者快速掌握这一强大的持久化技术。 ... [详细]
  • 本文详细介绍了Python中的流程控制与条件判断技术,包括数据导入、数据变换、统计描述、假设检验、可视化以及自定义函数的创建等方面的内容。 ... [详细]
  • 本文探讨了SQLAlchemy ORM框架中如何利用外键和关系(relationship)来建立表间联系,简化复杂的查询操作。通过示例代码详细解释了relationship的定义、使用方法及其与外键的相互作用。 ... [详细]
  • SQLite是一种轻量级的关系型数据库管理系统,尽管体积小巧,却能支持高达2TB的数据库容量,每个数据库以单个文件形式存储。本文将详细介绍SQLite在Android开发中的应用,包括其数据存储机制、事务处理方式及数据类型的动态特性。 ... [详细]
  • 本文详细介绍了在 Windows 7 上安装和配置 PHP 5.4 的 Memcached 分布式缓存系统的方法,旨在减少数据库的频繁访问,提高应用程序的响应速度。 ... [详细]
  • 数据库环境:SQLSERVER2005  有一个test表,其表结构及数据如下图1。其中,id是主键,mid是当前节点,pid是父节点。要求:查出每个节点的根节点,如图2所示。 ... [详细]
  • 深入解析轻量级数据库 SQL Server Express LocalDB
    本文详细介绍了 SQL Server Express LocalDB,这是一种轻量级的本地 T-SQL 数据库解决方案,特别适合开发环境使用。文章还探讨了 LocalDB 与其他轻量级数据库的对比,并提供了安装和连接 LocalDB 的步骤。 ... [详细]
  • 本文详细介绍了Oracle RMAN中的增量备份机制,重点解析了差异增量和累积增量备份的概念及其在不同Oracle版本中的实现。通过对比两种备份方式的特点,帮助读者选择合适的备份策略。 ... [详细]
  • ECharts图表绘制函数集
    本文档提供了使用ECharts库创建柱状图、饼图和双折线图的JavaScript函数。每个函数都详细列出了参数说明,并通过示例展示了如何调用这些函数以生成不同类型的图表。 ... [详细]
  • 本文探讨了如何利用Pandas库在Python中执行复杂的多条件左连接操作,特别是当需要基于不同列的不同键进行连接时的方法。 ... [详细]
  • 本文深入探讨了JLine库中的ConsoleReader.drawBuffer()方法的使用场景和具体实现,通过多个实际代码示例,帮助开发者更好地理解和应用此方法。 ... [详细]
  • MVC框架下使用DataGrid实现时间筛选与枚举填充
    本文介绍如何在ASP.NET MVC项目中利用DataGrid组件增强搜索功能,具体包括使用jQuery UI的DatePicker插件添加时间筛选条件,并通过枚举数据填充下拉列表。 ... [详细]
  • 字符、字符串和文本的处理之Char类型
    .NetFramework中处理字符和字符串的主要有以下这么几个类:(1)、System.Char类一基础字符串处理类(2)、System.String类一处理不可变的字符串(一经 ... [详细]
  • 深入浅出:Hadoop架构详解
    Hadoop作为大数据处理的核心技术,包含了一系列组件如HDFS(分布式文件系统)、YARN(资源管理框架)和MapReduce(并行计算模型)。本文将通过实例解析Hadoop的工作原理及其优势。 ... [详细]
author-avatar
清新之乄风666
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有