嵌套查询及其与join的区别

2023-11-14

嵌套即可以写在select子句中,也可以写在from子句中。下面以SQL Entity为例来说明:

1. 嵌套在select中,以父表为主在select中嵌套子表信息。

SELECT c.Title, ANYELEMENT(SELECT oa.FirstName, oa.LastName, oa.Street1, oa.City, oa.StateProvince
                                                   FROM SampleEntities.vOfficeAddresses as oa
                                                   WHERE c.ContactID=oa.ContactID)
FROM SampleEntities.Contacts as c
Where c.FirstName='Robert'

这种情况下一般要用ANYELEMENT函数。此种情况实际意义不大,只是列在这里表示可以这么写。

2. 嵌套在select中,以子表为主在select中嵌套父表信息。

SELECT TRIM(oa.FirstName), oa.LastName,
               ANYELEMENT(SELECT VALUE c.Title
                                        FROM SampleEntities.Contacts as c
                                        WHERE c.ContactID=oa.ContactID),
              oa.Street1, oa.City, oa.StateProvince
FROM SampleEntities.vOfficeAddresses as oa

这种情况下是有意义的。目的是获取一些父表中的信息。最主要的问题是无法根据父表来过滤。例如选择Contact.FirstName='Robert'用这种方法就不能实现。

3.Join

SELECT c.Title,oa.FirstName, oa.LastName,
oa.Street1, oa.City, oa.StateProvince
FROM PEF.Contacts as c
JOIN PEF.vOfficeAddresses as oa
ON c.ContactID = oa.ContactID

Where c.FirstName='Robert'

这种方式灵活。因为join之后得到一张表,可以在这张表上进行where操作。

4. From子句中的嵌套

SELECT TRIM(oa.FirstName), oa.LastName
FROM (SELECT VALUE oa
FROM PEF.vOfficeAddresses AS oa
WHERE oa.StateProvince='Ontario')
AS oa

这种方式很容易理解。from子句需要一个表,所以可以嵌套一个select子句。

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

嵌套查询及其与join的区别 的相关文章

  • 从结构调用 C++ 成员函数指针

    我找到了有关调用 C 成员函数指针和调用结构中的指针的信息 但我需要调用结构内部存在的成员函数指针 但我无法获得正确的语法 我在类 MyClass 的方法中有以下代码片段 void MyClass run struct int MyClas
  • Visual Studio 2013 调试器显示 std::string 的奇怪值

    我有一个大型的 cmake 生成的解决方案 其中包含许多项目 由于某种原因 我无法查看字符串的内容 因为根据调试器 Bx Buf含有一些垃圾 text c str 正确返回 Hello 该问题不仅仅发生在本地字符串上 返回的函数std st
  • 如何在 C# 中以编程方式将行添加到 DataGrid?

    正如标题所述 我正在尝试使用 C 以编程方式将行添加到 DataGrid 但我似乎无法使其工作 这是我到目前为止所拥有的 I have a DataGrid declared as dg in the XAML foreach string
  • C# 结构默认值

    我有一个方法 它接受一个包含许多具有基本数据类型的字段的结构 我想传递大部分默认值 但需要进行一些调整 但我了解结构声明中的基本字段不能包含默认值声明 例如struct S int a 42 现在是这样的 OptionsStruct opt
  • 大量互斥体对性能的影响

    假设我有一个包含 1 000 000 个元素的数组 以及多个工作线程 每个线程都操作该数组中的数据 工作线程可能会使用新数据更新已填充的元素 但每个操作仅限于单个数组元素 并且独立于任何其他元素的值 使用单个互斥锁来保护整个数组显然会导致高
  • 自己绘制的WPF自定义滑块

    这是我关于堆栈溢出的第一个问题 所以不要踢它 我在尝试创建 Mac 风格的滑块控件时遇到问题 我已经发现这个解决方案 http www codeproject com KB miscctrl MAC Slider aspx我已经在我的解决方
  • DateTime.ParseExact - 为什么 yy 变成 2015 而不是 1915

    为什么 NET 假定以下年份是 2015 年 而不是 1915 年 var d DateTime ParseExact 20 11 15 dd MM yy new CultureInfo en GB 我想 它会尝试接近 但其背后是否有合理的
  • 如何在 C++ 中正确使用 cin.fail()

    我正在编写一个程序 从用户那里获取整数输入cin gt gt iUserSel 如果用户输入一个字母 程序就会进入无限循环 我试图用下面的代码来阻止这种情况 但程序进入无限循环并打印出 错误 输入 我该如何修复我的程序 cin gt gt
  • C# 可以为控制台应用程序部分类“程序”类吗?

    我想知道是否可以将为任何控制台应用程序创建的默认 程序 类更改为部分类 我想这样做是因为我想要更好的组织 而不是将所有方法都放在按区域分类的 1 个文件中 对我来说 将某些方法类别放在单独的文件中会更有意义 我对分部类的理解是 它是多个文件
  • MINIX内部碎片2

    我正在用 C 语言编写一些软件 它递归地列出给定目录中的所有文件 现在我需要计算出内部碎片 我花了很长时间研究这个问题 发现 ext2 上的内部碎片只发生在最后一个块中 我知道理论上你应该能够从索引节点号获得第一个和最后一个块地址 但我不知
  • 运行实体框架自定义工具,它有什么作用?

    在 Visual Studio 中 当使用实体框架并为 tt 和 Context tt 文件应用运行自定义工具时 它是什么以及它有什么作用 为什么它解决数据库同步问题 有时 为什么我应该在运行 tt 之前运行它 Context tt 它被称
  • 如何在Windows窗体中打开进程

    我想在我的 Windows 窗体应用程序中打开进程 例如 我希望当用户按下 Windows 窗体容器之一中的按钮时 mstsc exe 将打开 如果他按下按钮 它将在另一个容器上打开 IE DllImport user32 dll SetL
  • Clang 5.0 上的 vsprintf 和 vsnprintf [-Wformat-nonliteral] 警告

    我有这段代码 static void err doit int errnoflag int level const char fmt va list ap int errno save unsigned long n char buf MA
  • 具有多个父项的 Qt 树模型

    我想构建一棵树 其中一个元素可以引用另一个元素 我想要构建的树是 像这样的东西 A B C D E F P this is a pointer to C D first child of C E second child of C I fo
  • g++ / gcc 是否支持 C++20 新的atomic_flag 功能?

    根据参考参数 https en cppreference com w cpp atomic atomic flag c 20 有丰富的 对我来说有用的 支持atomic flag运营 然而 目前尚不清楚 gcc 是否支持这些功能 它们在任何
  • 为什么我可以在另一个函数中定义一个函数?

    请参阅下面的代码 我在另一个函数中定义了一个函数 void test1 void void test2 void printf test2 n printf test1 n int main void test1 return 0 这个用法
  • 如何防止 Lotus Notes 用户转发或复制通过 System.Net.Mail 发送的邮件?

    我想使用 SMTP 客户端 uiing microsft net 以 C 作为编程语言发送电子邮件 但是对于通过SMTP客户端发送的电子邮件 我们是否可以添加 禁止转发 或 禁止复制 等安全功能 我不希望电子邮件的收件人转发或复制电子邮件的
  • Knex 中的表的别名

    我有一个 SQL 查询两次引用同一个表 并且我需要将该表别名为两个单独的别名 我不太清楚如何用 Knex 来编写它 有一个 单词 表和一个 用户 表 Words 表有两个外键 author id 和 winner id 引用 Users 表
  • java有类似C#的属性吗? [复制]

    这个问题在这里已经有答案了 C 属性 我的意思是 get 和 set 方法 是一个非常有用的功能 java 也有类似 C 的属性吗 我的意思是我们如何在 java 中实现类似以下 C 代码的内容 public string Name get
  • NHibernate:无状态会话错误消息无法获取代理

    我正在使用 nHibernate 无状态会话来获取对象 更新一个属性并将对象保存回数据库 我不断收到错误消息 无状态会话无法获取代理 我在其他地方有类似的代码 所以我不明白为什么这不起作用 有谁知道问题可能是什么 我正在尝试更新Screen

随机推荐

  • SOA和伪技术

    中国的造假之风 已经成为整个国家整个社会的一个老大难问题 从最开始的假烟假酒 到后来的假名牌假新闻 从最个人化的假球迷假学历 到严重社会化的假文凭假鸡蛋 可以说是 长江后假推前假 一代新假换旧假 沉舟侧畔有千假 病树前头有十假 科学领域的造
  • 跨站脚本攻击(XSS) 漏洞原理及防御方法

    注 转载请注明出自 https blog csdn net qq 36711453 article details 83745195 XSS跨站脚本攻击 两种情况 一种通过外部输入然后直接在浏览器端触发 即反射型XSS 还有一种则是先把利用
  • react组件在页面切换时,如果页面组件已经被销毁,终止已销毁页面的请求的解决方案

    就比如说下面这个请求时间太长了 在它还没有请求成功就切换了页面 销毁了页面组件 useEffect就会给它设置成true 抛弃这个请求 const ignore useRef false useEffect gt return gt ign
  • 【STM32实战】机械臂快递分拣系统(二)——机械臂控制程序(上位机)编写

    STM32实战 机械臂快递分拣系统 二 机械臂控制程序 上位机 编写 前言 题目分析 蓝牙模块的使用 上位机程序的编写 连接阿里云 测试 前言 近期回校上最后一门课 刚好是做机械臂有关的题目 所以写文记录一下 主要实现的是可以自动识别获取快
  • 线与逻辑与OC门、OD门关系

    线与逻辑 两个或多个输出信号连接在一起可以实现逻辑 与 的功能 以下图为例 当与非门G1和G2输出都为1时 输出L才为1 只要有一个输出为0 则输出L为0 在硬件上 要用OC门 三极管 集电极开路 或OD门 NMOS 漏极开路 来实现 另外
  • Qt5打包——利用自带的windeployqt.exe和工具Enigma Virtual Box

    目录 运行 添加依赖 发布成单一exe形式 运行 选择Release版本 运行一次 Release 运行后会发现多了Release版本 里面有exe 但是双击时会发现缺少一些动态链接库 直接点击后缺少动态链接库 添加依赖 在你的Qt的安装包
  • 提高单机短连接QPS到20万

    提高单机短连接QPS到20万 转载于http weibo com ttarticle p show id 2309404037884855362229 一般的通讯协议在设计上都避免服务器端主动发起TCP连接关闭 让客户端来发起close s
  • 解决,worldGeo.db中有geom数据的x1表无法在QGIS中成图像

    原因 缺少geom数据对应的坐标geometry columns文件 如下图所示 STEP 1 在navicat for SQLite中将目标表x1中字段geom中blob改成 POINT 或者MULTIPOLYGON等对应的格式 注意 f
  • 成功解决Windows MemoryError: Unable to allocate 6.38 GiB for an array with shape (38

    因为运行文件所在的磁盘分配内存不够问题造成的 解决方法如下 打开我的电脑 右键属性 高级 性能设置 选择高级 更改 点击E盘 点击自定义大小 设置分配内存 我选择6G 6144kb 点击确定完成 再次运行文件 问题解决
  • invalid credential, access_token is invalid or not latest hint(微信 上传图片返回 error)

    errcode 40001 errmsg invalid credential access token is invalid or not latest hint 3G1y5a0106vr61 这种情况跟这个库没有直接关系 请检查一下是否
  • 5分钟讲解直流线性稳压降压电源基本原理

    怎么把 12 v电变为 5v呢 通过变压器是可以实现的 但是变压器只能转换交流电 那直流电怎么转换呢 我们来看下最简单的降压方式 比如负载是 5欧 那么要得到 5V的压降 按照串联分压原理 需要给它串联一个 7 欧的电阻附加 就能得到 5
  • 【LINUX相关】生成随机数(srand、/dev/random 和 /dev/urandom )

    目录 一 问题背景 二 修改方法 2 1 修改种子 2 2 使用linux中的 dev urandom 生成随机数 三 dev random 和 dev urandom 的原理 3 1 参考连接 3 2 重难点总结 3 2 1 生成随机数的
  • 9*9乘法表

    package practice 99乘法表 public class Test02 public static void main String args for int i 1 i lt 9 i 外层控制行数 for int j 1 j
  • 【查缺补漏】“.“ 和 “->“运算符的区别是什么?

    目录 简介 Note 结语 简介 Hello 非常感谢您阅读海轰的文章 倘若文中有错误的地方 欢迎您指出 昵称 海轰 标签 程序猿 C 选手 学生 简介 因C语言结识编程 随后转入计算机专业 获得过国家奖学金 有幸在竞赛中拿过一些国奖 省奖
  • shell test功能

    test测试功能 对于要测试系统上面某些文件或其相关属性时 可以使用test进行测试 test会根据相关功能返回True或False 测试文件类型test e filename 测试功能 意义 e 该文件是否存在 f 该文件名是否存在且为文
  • SSD1306 - OLED显示屏

    SSD1306 OLED显示屏 芯片介绍 引脚介绍 SSD1306是一款带控制器的用于OLED点阵图形显示系统的单片CMOS OLED PLED驱动器 它由128个SEG 列输出 和64个COM 行输出 组成 该芯片专为共阴极OLED面板设
  • 数据的无量纲化处理和标准化处理的区别是什么

    数据的无量纲化处理和标准化处理的区别是什么 请教 两者除了方法上有所不同外 在其他方面还有什么区别 解答 标准化处理方法是无量纲化处理的一种方法 除此之外 还有相对化处理方法 包括初值比处理 函数化 功效系数 方法 等等 由于标准化处理方法
  • C++11智能指针之unique_ptr

    1 智能指针概念 智能指针是基于RAII机制实现的类 模板 具有指针的行为 重载了operator 与operator gt 操作符 可以 智能 地销毁其所指对象 C 11中有unique ptr shared ptr与weak ptr等智
  • 英语 动词过去式和过去分词的变化规则

    动词过去式和过去分词有规则变化和不规则变化两种 实例顺序 动词原形过去式过去分词 发音 ed在清辅音音素后发音为 t 在浊辅音后发音为 d 在元音后发音也为 d 在 t d 后发音为 id 一 规则变化 1 一般在动词原形后加 ed loo
  • 嵌套查询及其与join的区别

    嵌套即可以写在select子句中 也可以写在from子句中 下面以SQL Entity为例来说明 1 嵌套在select中 以父表为主在select中嵌套子表信息 SELECT c Title ANYELEMENT SELECT oa Fi