MySQL 左连接多对一行

2024-02-21

为了简化我的问题:假设我有 3 个表。

Rooms              People                    Things
--------           --------                  --------
id| name           id | name | fk_rooms      id | name | fk_rooms
-----------        ---------------------     ---------------------
1 | kitchen        1  | John | 1              1 | TV   | 2
2 | bedroom        2  | Mary | 2              2 | bed  | 2
                   3  | Andy | 1              3 | sink | 1
                   4  | Laura| 1

现在我正在做类似的事情:

SELECT r.name AS room_name, p.name AS name, t.name AS thing FROM Rooms r 
LEFT JOIN People p ON p.fk_rooms = r.id
LEFT JOIN Things t ON t.fk_rooms = r.id

在我的例子中,除了少数与“房间”表具有多对一关系的情况外,它工作得很好。因此,我只想收到两行,而不是结果集中的新行保存与“房间”表相关的“人”和“物”的不同名称:

1. kitchen, John, Andy, Laura, sink
2. bedroom, Mary, TV, bed

A GROUP BY在 r.id 上只会select每个表占一行。非常感谢任何帮助!


这就是您要寻找的:

SELECT r.name AS room_name, 
   GROUP_CONCAT(p.name separator ',') AS people_name, 
   GROUP_CONCAT(t.name separator ',') AS things
FROM Rooms r 
LEFT JOIN People p ON p.fk_rooms = r.id
LEFT JOIN Things t ON t.fk_rooms = r.id
GROUP BY r.id
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL 左连接多对一行 的相关文章

  • MySQL查看数据是否为NULL

    我需要在 Select 中放置一个 Case 来检查我添加到视图中的数据是否为 NULL 在这种情况下我希望它只输入零 或者不输入零 你的意思是这样的吗 SELECT IF field IS NULL 0 field 还有 IFNULL S
  • MySQL 存储过程、Pandas 和“执行多个语句时使用 multi=True”

    注意 正如下面 MaxU 所建议的 该问题特定于 mysql connector 如果您使用 pymysql 则不会出现该问题 希望这可以帮其他人省去一些麻烦 使用Python Pandas 和mySQL 根本无法让存储过程返回结果 更不用
  • 表被指定两次作为 INSERT 的目标和单独的数据源

    我做了这个查询 但它给了我错误 就像标题中一样 INSERT INTO data waktu vaksinasi id binatang id vaksin tanggal vaksin status vaksin VALUES 1 1 S
  • Navicat 中的 MySQL 视图 - 如何定义“主键”?

    当我在 Navicat 中定义视图时 经常会收到以下消息 xxx 没有主键 对此表的更新将使用以下伪语句完成 UPDATE xxx SET ModifiedFieldsAndValues WHERE AllFieldsAndOldValue
  • 如何使用默认约束为mysql中的列创建随机数?

    DEFAULT 约束在接受字符串或当前日期值方面没有问题 我需要的是一个约束 每次创建实体时都会创建一个随机的 4 位数字 我尝试了以下代码 但它返回语法错误 ALTER TABLE client number ADD 代码 INT 4 D
  • 自动递增和最后插入 ID

    我在用着AUTO INCREMENT我想获取插入行的 ID 以便我可以使用更新另一个表ID作为两个表之间的公共字段 我明白LAST INSERT ID会排在最后ID 然而 我担心的是 数据库被许多用户同时访问 因此 可能有另一个进程访问该表
  • 如何在mysql中设置“performance_schema on”?

    我想转performance schemaON 在 mysql 中收集统计信息 我怎样才能实现这个目标 以下指南是特定于 Linux 的 但应该很容易适用于 Windows 您必须检查 mysql 服务器二进制文件是否已编译为支持它 mys
  • java.sql.SQLException:已经关闭

    我们有一个在 Tomcat 上运行的 Web 应用程序 带有 MySQL 后端 有一段时间一切都很好 然后突然我们开始遇到这个异常java sql SQLException Already closed 整个堆栈跟踪是 DEBUG org
  • MySQL 可以存储多少行?

    所以我是一个初学者 刚刚自学了几个月的MySQL 我在工作中总是使用 phpMyAdmin 我过去的工作只涉及大约 100k 行的表 所以没有什么大问题 然而 我的客户现在想要在表中存储大约 800 万行 MySQL phpMyAdmin
  • PDO 多查询“SQLSTATE[HY000]:一般错误”

    我仍在学习 PDO 所以我可能会错过一些东西 但基本上我正在尝试将一行插入表中 然后选择生成的 id 我不确定它是否喜欢一个 pdo 语句中的两个查询 这是我用来执行 SQL 的代码 public function ExecuteQuery
  • 数据库设计 - “推”模型,或写时扇出

    背景信息 我正在尝试检索我关注的人的图像 按最新时间排序 它就像 Twitter 新闻源 显示您朋友的最新动态 Plans 目前我只需要考虑一项 那就是图像 将来我计划分析用户的行为并将他们可能喜欢的其他图像添加到他们的提要中等 http
  • MySql 5.7 函数 UUID() 默认排序规则 - 非法混合排序规则

    Problem MySQL uuid 默认排序规则与配置连接排序规则不进行比较 我有一个使用字符集创建的数据库 表 字段 utf 8和排序规则utf8 polish ci my cnf 如下 init connect SET NAMES u
  • 在关系数据库中存储 1:1 用户关系的最佳方式

    存储用户关系的最佳方式是什么 例如友谊 在关系中必须是双向的 你是我的朋友 因此我是你的朋友 数据库 例如MYSql 我可以想到两种方法 每当一个用户与另一个用户成为好友时 我都会向数据库添加两行 其中 A 行由发起用户的用户 ID 和下一
  • 如何在同一列中选择多个值?

    我正在尝试在单个列中选择多个值 基本上我希望查询选择列下的所有内容family有价值观Software 1Y XI 1Y and P1 1Y 我正在运行这个查询 SELECT salesorder masterproduct family
  • Sails 嵌套模型集合

    我有 3 个型号 用户模型 module exports schema true attributes login type string required true hosts collection host via owners acc
  • 删除 ibdata1 后 MySQL 表消失了

    几天前 经过一番谷歌搜索后 我发现了这篇文章 我无法再让 mysql 运行了 xampp XAMPP MySQL 意外关闭 https stackoverflow com questions 18022809 xampp mysql shu
  • 将我的本地数据库(Mysql)复制到远程数据库(phpmyadmin)

    My MySQL database local server is connected to a weather station The data are updated continuously on my local server My
  • mysql 准备好的语句错误:MySQLSyntaxErrorException

    我使用准备好的语句编写了选择语句 每次尝试运行都会出现此错误 我如何克服这个错误 我的jdbc连接器是mysql connector java 5 1 13 bin jar 我的代码 public Main add ad to getAdD
  • 如何在 laravel 中查询 json 列?

    我用的是 Laravel 5 6 我有一块田地 字段的数据类型为json 字段 desc 字段 的值如下所示 code 1 club CHE country ENGLAND code 2 club BAY country GERMANY c
  • 如何查找列表/集合是否包含在另一个列表中

    我有一个产品 ID 列表 我想找出哪些订单包含所有这些产品 订单表的结构如下 order id product id 1 222 1 555 2 333 显然我可以通过 PHP 中的一些循环来做到这一点 但我想知道是否有一种优雅的方法可以纯

随机推荐

  • 如何为头像图像创建五边形形状?

    我不知道如何为用户头像图像 或 svg 创建五边形形状 寻找指向下方而不是指向上方的形状 我在这里找到了例子http css tricks com examples ShapesOfCSS http css tricks com examp
  • 以其他用户身份运行时无法捕获输出

    我正在制作一个应用程序 允许客户端在对话框中列出所有正在运行的进程 我目前有以下代码 但我无法弄清楚为什么它不起作用 我没有看到任何输出 无论是 stderr 还是 stdout 有人可以指出我正确的方向吗 private void but
  • PHPMailer 附件,无需物理文件即可完成

    So Setup mail class recipients and body mailer gt AddAttachment home mywebsite public html file zip file zip The AddAtta
  • 如何在没有外部定时器的情况下设置QNetworkReply超时?

    是否可以设置超时时间QNetworkReply 所以很长一段时间没有来自服务器的回复 它可能会发出finished signal 不使用计时器是不可能的 但您不必显式编写计时器代码 该功能可以巧妙地打包到静态函数中 就像超时是回复的可设置属
  • 将 Rscript 中的布尔值输出到 Bash 变量中

    我有一个输出 TRUE 或 FALSE 的 R 脚本 在 R 中 它使用真正的 T F 数据类型 但是当我将其返回值回显给 bash 时 它似乎是一个字符串 表示 1 TRUE or 1 FALSE 它们的前面都有 1 0 也不是 这不是拼
  • 结合 CSS 的方法

    我有多个CSS文件 设计师制作了几个 bad迭代 我需要将其合并到一个文件中 然而 我不想把它们放在一起 我想合并类似选择器的属性 即 file 1 mainmenu width 100 background 01568b text dec
  • Oracle 相当于 Postgres 的 DISTINCT ON?

    在 postgres 中 您可以使用以下命令查询组中的第一个值DISTINCT ON 在Oracle中如何实现这一点 来自 postgres 手册 SELECT DISTINCT ON 表达式 仅保留第一行 给定表达式计算结果相等的每组行
  • Gson 在转换时忽略我的字段

    我创建了一个模型 public class UserRequest extends DefaultRequest public String username public String password public String id
  • 翻译 Angular-UI 分页

    如何翻译 Bootstrap UI 分页指令中的文本 我已经为法语翻译覆盖了这样的常量 angular module myapp ui bootstrap constant paginationConfig itemsPerPage 10
  • 我怎样才能完成“组”活动?

    我的 Android 应用程序中有一个操作 其中包括几个活动 在此操作结束时 我需要关闭所有这些活动并返回到启动此操作的屏幕 下图解释了它是如何工作的 有什么选择可以做到这一点吗 P S 片段在我的情况下不是一个选项 有很多方法可以做到这一
  • Django 1.4 用户管理 list_filter 使用 UserProfile 字段

    编辑 我更新了代码以反映查询集过滤器中的一个错误 其中我的 user user type 已被正确的 userprofile user type 替换 我正在使用 Django 1 4 并且我知道有一个新功能可以为管理员创建自定义 list
  • R - 使用字体(extrafont)时不打印空格

    我想使用特殊字体生成 R 图 即 Cormorant Garamond Light Cormorant Light 也是可能的 问题是它适用于所有其他字体 但对于这种字体 所有空格都被忽略 library ggplot2 library e
  • 我如何知道证书的 storeName 是什么?

    我在 Windows Server 2003 中安装了证书 我从MMC看到的路径是 证书 本地计算机 个人 证书 我想在我的 wcf 配置中配置它 我如何知道 storeName 是什么 这是我到目前为止在 wcf 配置中得到的
  • 命令行开关阻止 Inno Setup 安装程序创建桌面图标

    我正在尝试为 Balsamiq Mockups 创建静默安装 该安装似乎是使用 Inno Setup 编译器创建的 作为标准静默安装的一部分 它会创建一个我希望阻止的桌面快捷方式 有谁知道相关的命令行开关来防止创建桌面图标 我尝试过使用 M
  • 如何在sql server中进行交易技术分析计算?

    我如何像在 Excel 中一样使用 T SQL 在 SQL SERVER 数据库中进行技术分析指标计算 例如平均方向指数 随机振荡指标等 如果可以的话 是否可以像在excel中做宏一样制作程序呢 提前致谢 程序代码是在 MS SQL Ser
  • 将没有“timevar”的数据帧从长格式转置/重塑为宽格式

    我有一个遵循以下长模式的数据框 Name MedName Name1 atenolol 25mg Name1 aspirin 81mg Name1 sildenafil 100mg Name2 atenolol 50mg Name2 ena
  • 使用 clojure-csv.core 解析巨大的 csv 文件

    到目前为止我有 require clojure csv core as csv require clojure java io as io def csv file getFile clojure java io resource verb
  • 从电子邮件中删除不需要的标头(出于安全风险)

    我刚刚注意到 使用 mail 函数从我的主机发送的电子邮件也会发送标头中的内部数据 例如 这是我在 Gmail 中找到的内容 通过单击显示原件 X AntiAbuse This header was added to track abuse
  • 可以在生产 Laravel 网站上运行 php artisan :clear 命令吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我有一个托管在 DigitalOcean NGINX 服务器上的生产 Laravel 网站 每次 git 推送新更新时 我总是运行以下命令 ph
  • MySQL 左连接多对一行

    为了简化我的问题 假设我有 3 个表 Rooms People Things id name id name fk rooms id name fk rooms 1 kitchen 1 John 1 1 TV 2 2 bedroom 2 M