SQL,关于连接的问题

2023-12-14

我在 sql 2012 中有两个表:名称和产品,其结构:

name: id int increment, name1 nvarchar(50)

prod: id int increment, products nvarchar(50), id_name int

表的值为:

姓名表:

Id   name1
1    pop
2    andi

产品表:

Id   products   id_name
1    coke       1
2    pizza      1
3    orange     2

我已经完成了这个查询:

select name.name1, prod.product, prod.id_name
from name
join prod on name.id=prod.id_name

我怎样才能获得这个结果:

pop ->coke, pizza
andi->orange  

不幸的是,在 SQL Server 中没有简单的方法可以做到这一点。已知的解决方案有:

  • xml 技巧(见下文);
  • 使用变量来累积数据(不适用于多组行,仅适用于游标);
  • 自定义 CLR 聚合;

这是 XML:

select
    n.name1,
    stuff(
        (
         select ', ' + p.product
         from prod as p
         where p.id_name = n.id
         for xml path(''),  type).value('.', 'nvarchar(max)')
    , 1, 2, '') as products
from name as n

sql fiddle demo

这是变量:

declare @product nvarchar(max), @id int

select @id = 1

select @product = isnull(@product + ', ', '') + product
from prod
where id_name = @id

select name1, @product as products
from name 
where id = @id

sql fiddle demo

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

SQL,关于连接的问题 的相关文章

  • 尚未为此带有 SQL Server 的 DbContext .NET Core 配置数据库提供程序

    我一直用这个把头撞在墙上 并且一直在谷歌上搜索无济于事 我刚刚开始一个新的 ASP NET Core MVC 项目 我已将这两个包安装 更新为 2 2 0 Microsoft EntityFrameworkCore SqlServer Mi
  • Sql批量复制截断小数

    当我使用批量复制将十进制值从 C DataTable 插入 Sql Server 2005 时 值会被截断而不是四舍五入 DataTable 中的数据类型为 Decimal 数据库中的数据类型为Decimal 19 3 数据表中的值为 1
  • SQLite 中的累积求和值

    我正在尝试在 SQLite 中执行值的累积和 我最初只需要对一列求和并获得代码 SELECT t MyColumn SELECT Sum r KeyColumn1 FROM MyTable as r WHERE r Date lt t Da
  • “$$ 处或附近的未终止的美元引号字符串

    我试图使用 DBeaver 声明一些变量并不断遇到此错误 Unterminated dollar quoted string at or near DO DECLARE A integer B integer BEGIN END 有任何想法
  • 将子查询的结果插入表中并带有常量

    相关表格的概要如下 我有一个表 我们称之为联接 它有两列 都是其他表的外键 我们将这两列称为 userid 和buildingid 因此 join 看起来像 join userid buildingid 我基本上需要在这个表中插入一堆行 通
  • 如果外键不存在,则添加外键约束(或者如果存在则删除外键约束)而不使用名称?

    我发现创建查询很困难 假设我有一个产品和品牌表 我可以使用此命令添加外键 ALTER TABLE Products ADD FOREIGN KEY BrandID REFERENCES Brands ID 但我只需要在外键不存在时运行此命令
  • 如何将 SQL 结果存入 STRING 变量?

    我正在尝试获取 C 字符串变量或字符串数 组中的 SQL 结果 是否可以 我需要以某种方式使用 SqlDataReader 吗 我对 C 函数和所有功能非常陌生 曾经在 PHP 中工作 所以如果可以的话请给出一个工作示例 如果相关 我已经可
  • Python SQLite3 SQL注入漏洞代码

    我知道下面的代码片段由于 format 的原因很容易受到 SQL 注入的攻击 但我不知道为什么 有谁明白为什么这段代码容易受到攻击以及我从哪里开始修复它 我知道这些代码片段使输入字段保持打开状态 以便通过 SQL 注入执行其他恶意命令 但不
  • 使用另一个表中的数据查找并替换 MySQL 中的字符串

    我有两个 MySQL 表 我想使用另一个表中的数据查找和替换一个表中的文本字符串 Table texts messages thx guys i think u r great thx again u rock Table dictiona
  • MySql如何通过过滤多列来限制多个数字?

    我想从数据库中获取 4 个不同类别的 50 个问题 我想要 4 个不同类别中每个类别的不同数量的问题 我的结果集必须包含第一类 12 个问题 第二类 20 个问题 第三类 10 个问题和第四类 8 个问题 我的问题表中总共有 50 个问题
  • SQL:比较不同表中的两个计数

    我有 3 张桌子 一张桌子上有世界上每个国家及其代币 NAME CODE Afghanistan AFG Albania AL Algeria DZ American Samoa AMSA Andorra AND Angola ANG An
  • 在SQL Server中仅获取浮点数的小数部分[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我在 SQL Server 2008
  • MySQL:你能指定一个随机限制吗?

    有没有办法在 SQL MySQL 中随机化限制数字 我希望能够做的是在查询中获取随机数量的结果以在插入子查询中使用 而无需任何服务器端脚本 我希望能够作为假设说明运行的查询是 SELECT id FROM users ORDER BY RA
  • 返回行位置 - Postgres

    我返回一个带有位置的表 select from select row number over as position from organization result where data1 Hello 返回这个 这是正确的 data1 H
  • Postgresql 中的 id 列位置重要吗?

    我正在测试删除主键列 id 的迁移 我想使用外键作为主键 当我运行并恢复迁移时 我看到表的状态是相同的 只是 id 列现在是最后一个 它会以任何方式改变我的数据库的行为吗 我是否应该费心去恢复迁移恢复代码中的列顺序 理论上一切都应该没问题
  • t sql中的相对路径?

    如何获取t sql中的相对路径 举个例子 sql文件位于文件夹中D temp 我想获取文件夹中文件hello txt的路径D temp App Data 如何使用相对路径引用 假设我正在 SQL Server Management Stud
  • 具有 LINQ 支持的最完整的 ORM?

    我正在寻找一个提供完整或接近完整的 LINQ 支持的 ORM LINQ 到 SQL 支持 LINQ 内部的所有内容 Contains Math Log 等 在不创建新数据上下文的情况下无法预先加载关系属性 ADO NET 实体框架 糟糕的
  • 如何检测 Postgres 中持有锁的查询?

    我想不断跟踪 postgres 中的互锁 我碰到锁具监控 https wiki postgresql org wiki Lock Monitoring文章并尝试运行以下查询 SELECT bl pid AS blocked pid a us
  • 从存储过程中的动态 SQL 获取结果

    我正在编写一个存储过程 需要在过程中动态构造 SQL 语句以引用传入的表名称 我需要让这个 SQL 语句返回一个结果 然后我可以在整个过程的其余部分中使用该结果 我尝试过使用临时表和所有内容 但我不断收到一条消息 提示我需要声明变量等 例如
  • 如何打印Oracle中过程的定义?

    oracle中有没有办法查看过程的结构是什么 我正在尝试记录并运行程序 并希望将实际的程序结构存储在我的日志中 您可以查询ALL SOURCE table SELECT text FROM all source WHERE owner lt

随机推荐

  • 匹配键值模式正则表达式

    我正在制作一个键值解析器 其中输入字符串采用以下形式key value key2 value 键可以包含字符a z A Z and 0 9和值可以包含任何字符 但 and 需要以反斜杠为前缀 逗号用于分隔键值对 但在最后一对之后不需要 到目
  • 从 URL 中提取 TLD,并对每个 TLD 文件的域和子域进行排序

    我有一个包含数百万个网址的列表 我需要提取每个网址的 TLD 并为每个 TLD 创建多个文件 例如 收集所有以 com 作为 tld 的 url 并将其转储到 1 个文件中 将 edu tld 转储到另一个文件中 依此类推 此外 在每个文件
  • SignalR 无法启动连接

    我有一个 Angular 应用程序以及使用 SignalR 的 ASP NET Core 2 2 后端 启动连接时 我收到错误 Error Failed to complete negotiation with the server Err
  • 如何使用VBA获取google搜索的第一个搜索结果链接?

    在我的日常任务中 我目前必须搜索大量产品并收集有关这些产品的信息 所以我的想法是在谷歌上搜索产品 并通过从产品标题部分提取数据来从第一个搜索结果中获取信息 并对许多产品进行循环 到目前为止 我的代码如下 Sub SkuAutomation
  • 将 div 隐藏在其父项后面? [复制]

    这个问题在这里已经有答案了 div class content wrapper div class popup div class close div div div content wrapper 是相对定位的 包含所有页面内容 不仅仅是
  • grep 文件匹配特定列

    我只想保留其中的行results txt与中的 ID 匹配uniq txt基于第 3 列中的匹配results txt 通常我会使用grep f uniq txt results txt 但这并没有指定第 3 列 uniq txt 9606
  • CSS 中的 SVG DataURI 在 Firefox 中不起作用

    body background url data image svg xml utf8
  • 拉入 Mercurial 之前自动搁置(使用 TortoiseHG)?

    我不想提交一些已更改的文件 例如 web config 在拉取并更新到新的变更集之前 我必须将它们搁置起来 拉取和更新后 我必须取消搁置它们 我目前正在使用 TortoiseHG 有没有任何扩展可以自动执行此操作 我建议其他一些东西 您可以
  • 创建数组变量

    我想创建这种输出 var s1 Sony 7 Samsung 5 LG 8 这样我就可以用它来将我的图表作为变量传递 从我的ajax结果中得出 success function data code to extract the data v
  • C# 为所有可选参数提供值

    我正在读一本 C 书籍 正在阅读命名参数和可选参数一章 我读过一个项目符号 上面写着 如果存在多个可选参数并且指定了一个值 一 所有前面的可选参数也必须提供值 您能给我一个例子吗 因为我无法从代码中重现上述语句 以此方法签名为例 publi
  • 从使用 JWS 下载的 jar 文件中提取一些内容

    我试图从使用 java webstart 下载的 jar 文件中提取一些文件 下面的代码用于定位 jar 并启动文件系统 1 final ProtectionDomain domain this getClass getProtection
  • 如何在 UIView 中加载 xib 文件

    我一直在到处寻找 但到目前为止没有任何对我有用的东西 基本上我想要一个名为 rootView xib 的 xib 文件 在其中我想要一个 UIView 让我们称之为 containerView 它只占据屏幕的一半 所以会有常规视图和新视图
  • iframe 和父站点之间如何通信?

    iframe 中的网站不在同一个域中 但两者都是我的 我想在iframe和父站点 是否可以 对于不同的域 无法直接调用方法或访问 iframe 的内容文档 你必须使用跨文档消息传递 父级 gt iframe 例如在顶部窗口中 myIfram
  • Laravel 集团按月记录和总价

    您好 我正在尝试按月份对记录进行分组并对订单中的价格进行求和 我尝试过这样的事情 order Order select DB raw sum price as sums gt groupBy function date return Car
  • 带有 Tomcat 9 的 jakarta.servlet - 未找到问题 [重复]

    这个问题在这里已经有答案了 我有一个使用 eclipse 和 tomcat 9 服务器运行的应用程序 当我运行应用程序时 它会在浏览器中打开 index html 页面 但在索引页面内调用的 API 会出现 404 状态错误 我尝试了各种
  • 通过鼠标点击删除节点,networkX,python 2.7

    我用Python 2 7用networkX编写了一个程序 它绘制了一棵带有黑白节点的树 这是一个最小的例子 import networkx as nx import matplotlib pyplot as plt import numpy
  • 如何立即调用 C++ lambda?

    我继承的类的构造函数需要传入一个重要的对象 与此类似 MyFoo MyFoo SomeBase complexstuff return The complexstuff没有什么关系MyFoo 所以我不想将其传递进去 而不是编写某种返回的一次
  • 更改 HTML 文本框:覆盖而不是插入为用户类型

    我正在开发一项允许编辑文本的服务 为了在此过程中帮助用户 我想允许用户将文本字段设置为覆盖模式 就像在 Word 等中一样 如何将 HTML 文本框的行为更改为覆盖而不是插入文本当用户输入时 例如 如果文本框包含以下文本 This is a
  • 有什么方法可以根据类模板类型初始化此变量吗?

    我有课stats带有模板 这样就可以灵活使用 不过 我对模板很陌生 我认为它们的重点是使其在用户周围灵活 所以我觉得我做错了什么 因为我撞到了一堵小墙 include
  • SQL,关于连接的问题

    我在 sql 2012 中有两个表 名称和产品 其结构 name id int increment name1 nvarchar 50 prod id int increment products nvarchar 50 id name i