MySQL:如何多次连接同一个表?

2023-12-07

我有两张桌子ticket and attr. Table ticket has ticked_id领域和其他几个领域。桌子attr有3个字段:

ticket_id - numeric
attr_type - numeric
attr_val - string

attr_type是值的固定枚举。例如,它可以是1, 2 or 3.

我需要进行一个查询,其结果将是 4 列:

ticket_id, attr_val for attr_type=1, attr_val for attr_type=2, attr_val for attr_type=3

如果没有对应的值attr_type in attr表中,则 NULL 值应显示在相应的列中。

票务表:

ticket_id
1
2
3

属性表:

ticket_id attr_type attr_val
1 1 Foo
1 2 Bar
1 3 Egg
2 2 Spam

预期输出:

ticket_id attr_val1 attr_val2 attr_val3
1 Foo Bar Egg
2 null Spam null
3 null null null

我尝试离开加入attr表 3 次,但不知道如何安排输出attr_type


您需要使用多个LEFT JOINs:

SELECT 
    ticket.ticket_id,  
    a1.attr_val AS attr_val1,
    a2.attr_val AS attr_val2,
    a3.attr_val AS attr_val3
FROM ticket
    LEFT JOIN attr a1 ON ticket.ticket_id=a1.ticket_id AND a1.attr_type=1
    LEFT JOIN attr a2 ON ticket.ticket_id=a2.ticket_id AND a2.attr_type=2
    LEFT JOIN attr a3 ON ticket.ticket_id=a3.ticket_id AND a3.attr_type=3

这是一个例子:SQL小提琴.

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

MySQL:如何多次连接同一个表? 的相关文章

  • sql查询中case语句中的布尔值

    我在选择查询中使用 case 语句 类似这样 Select col1 col2 isActive case when col3 abc then 1 else 0 end col4 from
  • 选择每组最新的项目[重复]

    这个问题在这里已经有答案了 可能的重复 检索每组中的最后一条记录 https stackoverflow com questions 1313120 retrieving the last record in each group 我有 2
  • max()、分组依据和排序依据

    我有以下 SQL 语句 SELECT t client id max t points AS max FROM sessions GROUP BY t client id 它只是列出了客户 ID 以及他们所获得的最大积分 现在我想按 max
  • 如何使用 Alter Table 在 Access 中创建小数字段?

    我想以编程方式在 MS Access 表中创建一个新列 我尝试过很多排列ALTER TABLE MyTable Add MyField DECIMAL 9 4 NULL 并得到 字段定义中的语法错误 我可以轻松创建一个数字字段Double类
  • MyBatis 枚举的使用

    我知道以前有人问过这个问题 但我无法根据迄今为止找到的信息实施解决方案 所以也许有人可以向我解释一下 我有一个表 状态 它有两列 id 和 name id是PK 我不想使用 POJO Status 而是使用枚举 我创建了这样一个枚举 如下所
  • MySQL解释更新

    作为我大学复习的一部分 我试图回答以下问题 至少在表的一个属性上创建索引 employees 数据库 您可以在其中使用 MySQL EXPLAIN 工具 清楚地显示好处 在条款或检索方面 和负面 在 更新条款 创建相关索引的信息 对于第一部
  • SQL Like 带有子查询

    我怎样才能做到这一点 SELECT FROM item WHERE item name LIKE SELECT equipment type FROM equipment type GROUP BY equipment type 内部子查询
  • SQL 查询结果为字符串(或变量)

    是否可以将SQL查询结果输出到一个字符串或变量中 我的php和mysql不好 假设我有数据库 agents 其中包含列 agent id agent fname agent lname agent dept 使用此查询 sql SELECT
  • Chart.js - 使用 mysql 和 php 从数据库获取数据

    我正在尝试将静态数据转换为使用数据库结果 我将使用MySQL and PHP 示例代码 var randomScalingFactor function return Math round Math random 100 var lineC
  • 如何将变量设置为触发器 MYSQL 内存储过程的结果?

    我这里有一个小问题 我正在为我的数据库工作创建一个触发器 但我不知道如何在触发器内使用存储过程 我想将过程的结果保存在变量中 然后使用稍后在 IF 比较器上变量 这是我的代码 DELIMITER CREATE TRIGGER insert
  • 尚未为此带有 SQL Server 的 DbContext .NET Core 配置数据库提供程序

    我一直用这个把头撞在墙上 并且一直在谷歌上搜索无济于事 我刚刚开始一个新的 ASP NET Core MVC 项目 我已将这两个包安装 更新为 2 2 0 Microsoft EntityFrameworkCore SqlServer Mi
  • 关于 Cassandra 与 MySQL 的一些建议

    几天前我在这里问了一个问题 得到了一些非常好的答案 我正在考虑做一个带有个人资料 个人简介等的facebook风格的网站 并询问我是否应该使用mysql 答案是使用Cassandra 因为好多了 我只是问这是每个人都会建议的 只是我对mys
  • If Else 条件的 SQLite 语法

    我正在使用 SQLite 数据库 我的表有一个名为 密码 的文本列 早些时候 为了检索我用来执行简单操作的值select from myTable询问 但现在的要求是 如果Password值不是NULL那么我需要将其显示为 是 或 否 它是
  • Sql批量复制截断小数

    当我使用批量复制将十进制值从 C DataTable 插入 Sql Server 2005 时 值会被截断而不是四舍五入 DataTable 中的数据类型为 Decimal 数据库中的数据类型为Decimal 19 3 数据表中的值为 1
  • 如何将此本机 SQL 查询转换为 HQL

    所以我有这个很长的复杂的 Native SQLQuery string hql SELECT FROM SELECT a rownum r FROM select f2 filmid f2 realisateurid f2 titre f2
  • 常量值如何影响连接的 ON 子句?

    我最近发现 LEFT JOIN 的 ON 子句可能包含 1 1 等值 这让我感到不安 因为它打破了我对连接功能的看法 我遇到过以下情况的更详细版本 SELECT DISTINCT Person ID FROM Person LEFT JOI
  • 如何限制两个表之间一对多关系中的多个数量?

    我有一个带有两个 MySql 表的 MySQL 数据库 第一个是第一个表 表 A 有一列具有唯一值 从值 从 1 到 n 在第二个表 2 表 B 中 我有两列 在第一个表中我有一个名称 在第二个我的值从 1 到 n 如果我在 中添加一个值
  • 使用多个 WHERE 子句更新 Codeigniter 中的批次

    我查看了 CI 用户指南来了解如何处理update batch 并且它似乎只接受一个索引来匹配要更新的行 但在我的例子中 我需要指定两个索引 例如lang and id page我一起用作索引 这样的lang en id page 115是
  • ActiveRecord 查询,按关联排序,最后一个 has_many

    我试图列出所有Users by the created at最近创建的关联记录 通讯 列 到目前为止我所拥有的 User includes communications order communications created at IS
  • SQLite 中的累积求和值

    我正在尝试在 SQLite 中执行值的累积和 我最初只需要对一列求和并获得代码 SELECT t MyColumn SELECT Sum r KeyColumn1 FROM MyTable as r WHERE r Date lt t Da

随机推荐

  • 如何删除文件夹中除只读文件之外的所有文件?

    我想删除文件夹中除只读文件之外的所有文件和子文件夹 如何使用 powershell 来做到这一点 作为参考 这在 V3 中更容易一些 Get ChildItem Attributes r Remove Item Recurse Force
  • python 中字典列表的奇怪行为

    这是对列表执行操作的简单代码 gt gt gt a 0 5 gt gt gt a 0 0 0 0 0 gt gt gt a 0 5 gt gt gt a 5 0 0 0 0 gt gt gt 目前来看 没有什么异常 现在 我尝试对字典列表而
  • java.lang.ClassNotFoundException:org.springframework.http.converter.json.MappingJackson2HttpMessageConverter

    我在我的项目中使用 spring 集成 当我在 jetty 容器中部署应用程序时 出现以下异常 org springframework beans factory BeanCreationException Error creating b
  • jquery中传递变量

    将 var full 传递给函数 b 的最佳方法是什么 我不想使用全局变量 退货是唯一的选择 p p p class aaa p p p
  • 如何使android中的锚标记可点击

    这是我的代码 TextView aboutL1 TextView findViewById R id aboutL2 aboutL1 setText Html fromHtml This app is open source br The
  • 流改造意外结束

    我有一个 Android 应用程序 它向 Flask 中的 REST API 发出 http 请求 我使用 Retrofit2 和 okhttp3 向带有 Raspbian Lite 的 Raspberry Pi 上托管的服务器发出请求 我
  • 从 JAX-RS servlet 动态创建图像

    是否可以创建 PNG 图像并将其作为 JAX RS 资源的一部分直接输出到浏览器 像这样的东西 Path img externalId Stateless Produces image png public class MyImgResou
  • Apache POI、Excel 2007+ XML 和 OSGI

    对于一个项目 我尝试使用 Apache POI 来获取 Excel XML 功能以与 OSGI 配合使用 我尝试过 POI ServiceMix 捆绑包 但缺少 ooxml schemas jar 将 jar 添加到捆绑包并将其包含在清单中
  • 如何使用CSS动画创建如图所示的立方体开口?

    在我的项目中 当打开主页时 它应该运行 CSS 动画 以便立方体的面打开 动画完成后 脸部应该如图所示 我需要有一个结果就像第一次打开一样图片中 这是我的代码 sk folding cube margin 20px auto width 4
  • 如何避免使用 opencv 和 numpy 逐像素循环图像

    我逐个像素地循环浏览该图像 速度非常慢 我有 2 个图像 我正在比较切片和展平 因此每个元素都是一个名为 3 维 rgb 值e1 and e2 虽然它很慢 有没有一些方法使用opencv or numpy这可以加快速度吗 我在这里所做的是对
  • 维基数据内容协商

    我想知道为什么维基数据内容协商结果与文件中的多个实体有关 例如浏览器中的P2044 http www wikidata org entity P2044 nt 还给我关于 Q6452016 实体的三元组 http www wikidata
  • 我什么时候应该使用@android:id/?

    我找到了一些代码示例 android id xyz属性集而不是 id xyz 何时以及为什么需要使用 Android id 而不是用户的 id 加号表示资源是新的 必须创建它并添加到资源中R java file 省略加号会引用已存在的资源
  • EvtArchiveExportedLog 失败并显示 ERROR_DIRECTORY

    我需要在 Windows Server 2008 R2 上将一些事件从 Windows 事件日志导出到 XML 为了实现这一目标 我使用 EvtExportLog 将这些事件导出到文件 然后尝试使用 EvtArchiveExportedLo
  • 在 Swift 中从单个字符串转换为 ASCII 值的最简单方法是什么?

    我只想在 Swift 中获取单个字符字符串的 ASCII 值 这就是我目前正在做的 var singleChar a println singleChar unicodeScalars singleChar unicodeScalars s
  • if 语句的比较在 bash 中与 test 命令没有按预期工作[重复]

    这个问题在这里已经有答案了 我是一名新手 正在努力让我的第一个 如果那么 语句发挥作用 我编造了一个完全胡说八道的情况来用作试验 但它不起作用 我已经阅读了大约一半关于如何格式化 if then 的描述 但我不知道我可能做错了什么 我的脚本
  • 为什么windows需要withSocketsDo?

    在windows中 socket需要初始化 如图Networks 在 Windows 操作系统上 必须先使用 withSocketsDo 初始化网络子系统 然后才能使用任何网络操作 例如 main withSocketsDo do 尽管这仅
  • Sendgrid API - JSON 调用

    我正在尝试从 SendGrid API 接收数据 ajax type GET url https sendgrid com api bounces get json data api user username api key userke
  • 如何将 @Transactional 与 Spring Data 一起使用?

    我刚刚开始从事 Spring data Hibernate MySQL JPA 项目 我切换到 spring data 这样我就不必担心手动创建查询 我注意到使用 Transactional当您使用 spring data 时不需要 因为我
  • StandardOutput.ReadLine() 使用 C# 挂起应用程序

    以下是应用程序代码 有时 p StandardOutput ReadLine 工作正常 但有时会挂断 我尝试了所有方法 但仍然收到此错误 ProcessStartInfo startInfo new ProcessStartInfo c w
  • MySQL:如何多次连接同一个表?

    我有两张桌子ticket and attr Table ticket has ticked id领域和其他几个领域 桌子attr有3个字段 ticket id numeric attr type numeric attr val strin