获取标签包含 GROUP_CONCAT 字段的所有文章

2024-04-28

我有一张桌子articles, 其他tags,第三个称为article_tags。我想生成一个页面,其中列出特定标签的所有文章。

我的查询如下所示:

SELECT headline, GROUP_CONCAT(tags.tag_name) AS all_tags FROM articles
LEFT JOIN articles_tags ON articles.article_id = articles_tags.article_id
LEFT JOIN tags ON articles_tags.tag_id = tags.tag_id
WHERE tags.tag_name = 'japan'
GROUP BY articles.article_id

所有退回的文章只有japan作为标签,即使相关文章有多个标签。

这显然与WHERE子句,但我不知道如何在这里做我想做的事 - 理想情况下我最终会得到一个像这样的列表japan,china,korea反而。这是子查询的地方吗?需要 SQL 专家的建议。

谢谢, 马特


您至少可以使用两种方法。一种方法是与表连接两次。正如您指出的另一个是使用子查询。为了简单性和易于阅读,我可能会在这里使用子查询。结果查询将如下所示:

SELECT
    headline,
    GROUP_CONCAT(tags.tag_name) AS all_tags
FROM articles
JOIN articles_tags ON articles.article_id = articles_tags.article_id
JOIN tags ON articles_tags.tag_id = tags.tag_id
WHERE articles.article_id IN (
    SELECT articles.article_id
    FROM articles
    JOIN articles_tags ON articles.article_id = articles_tags.article_id
    JOIN tags ON articles_tags.tag_id = tags.tag_id
    WHERE tags.tag_name = 'japan'
)
GROUP BY articles.article_id

这是使用更多 JOIN 的方法:

SELECT
    a.headline,
    GROUP_CONCAT(t2.tag_name) AS all_tags
FROM articles a
JOIN articles_tags at1 ON a.article_id = at1.article_id
JOIN tags t1 ON at1.tag_id = t1.tag_id AND t1.tag_name = 'tag1'
JOIN articles_tags at2 ON a.article_id = at2.article_id
JOIN tags t2 ON at2.tag_id = t2.tag_id
GROUP BY a.article_id;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取标签包含 GROUP_CONCAT 字段的所有文章 的相关文章

  • Mysql对三表多列的连接查询

    我有三个这样的表 专业化 sid s name 1 test 1 2 test 2 Person pid name sid 1 ABC 1 2 XYZ 2 Timing tid time from time to pid 1 08 00 0
  • 寻找多列索引的最佳顺序

    假设我有一个包含两个索引的表 一个位于 a 列 一个位于 a b 和 c 列 我注意到 根据索引定义中列的顺序 MySQL 可能最终使用单列索引而不是多列索引 即使多列索引中的所有三列都在 ON 中引用JOIN 的一部分 这有点引出了一个问
  • SQL:两个没有完整列匹配的表的并集

    我有一个table A其中有一组列A1 A2和一个具有一组列的 table bB1 B2 碰巧的是A2 B1但其余列不匹配 也不应该匹配 我想附加表格 所以我使用UNION ALL 对于不匹配的列 我使用null as COLUMN NAM
  • 如何在一列中存储数组或多个值

    运行 Postgres 7 4 是的 我们正在升级 我需要将 1 到 100 个选定项目存储到数据库的一个字段中 98 的情况下 只会输入 1 个项目 而 2 的情况下 如果是这样的话 会输入多个项目 这些项目只不过是文本描述 截至目前 长
  • 如何终止正在运行的 SELECT 语句

    如何通过终止会话来停止正在运行的 SELECT 语句 该命令不断根据 SELECT 语句向我提供输出 我想在其间停止它 As you keep getting pages of results I m assuming you starte
  • 使用 PHP 查询更改表,列名未显示在 phpMyAdmin 中

    这是我的第一篇文章 这里有一篇类似的文章 phpMyAdmin 不显示添加的列 代码日志 https stackoverflow com questions 12960302 phpmyadmin doesnt show added col
  • 游标与更新

    一家公司使用 SQL Server 数据库来存储有关其客户及其业务交易的信息 您所在的城市引入了新的区号 对于前缀小于 500 的电话号码 区号 111 保持不变 前缀为 500 及以上的号码将分配区号 222 客户表中电话列中的所有电话号
  • 将数组文字传递给 PostgreSQL 函数

    我有一个包含 select 语句的 Postgres 函数 我需要使用包含字符串值数组的传入变量添加条件 CREATE OR REPLACE FUNCTION get questions vcode text RETURN return v
  • 无循环按键对多维数组求和

    我有这个 Array 0 gt Array f count gt 1 uid gt 105 1 gt Array f count gt 0 uid gt 106 2 gt Array f count gt 2 uid gt 107 3 gt
  • SQL分组和总结

    我的表如下所示 income date productid invoiceid customerid 300 2015 01 01 A 1234551 1 300 2016 01 02 A 1234552 1 300 2016 01 03
  • 比较 PHP 中的 unix 时间戳 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 在 PHP 中我有 diff abs
  • 在tomcat中显示Spring-security的SQL错误

    我使用 spring security 框架创建了一个 Web 应用程序 我设置了一个数据库来存储用户及其角色 但 tomcat 给出以下错误 17 sep 2010 11 56 14 org springframework beans f
  • InnoDB 或 MyISAM - 为什么不两者都使用呢?

    我读过各种关于两者之间哪个更好的主题InnoDB and MyISAM 看来争论的都是使用还是其他 根据表的不同 是否不能同时使用两者 这样做会有什么缺点 据我所知 发动机可以在CREATE TABLE命令 因此 某些经常读取的表可以设置为
  • 从 ISO 周中提取日期 (201905) BigQuery

    我需要从 ISO 周数中提取星期日的日期 即 201905 它需要位于 standardSQL 中 因为它将使用不支持旧版本的脚本进行调度 我尝试从 Google Sheets 调整工作公式 但无法弄清楚 Google Sheets 的原始
  • Oracle Many OR 与 IN () 的 SQL 性能调优 [重复]

    这个问题在这里已经有答案了 我手头没有 解释计划 您能帮忙判断以下哪一个更有效吗 选项1 select from VIEW ABC where STRING COL AA OR STRING COL BB OR STRING COL BB
  • 为什么 Orchard 在执行内容项查询时如此慢?

    假设我想查询所有 Orchard 用户 ID 并且还想包括那些已被删除 也称为软删除 的用户 该数据库包含大约 1000 个用户 Option A 大约需要 2 分钟 Orchard ContentManagement IContentMa
  • WordPress 访问

    我正在与朋友一起开发一个网站 使用Wordpress我们正在尝试从我的计算机和他的计算机访问同一个 WordPress 帐户 以便我们可以一起在网站上工作 我们尝试将彼此添加为管理员 但只能从创建管理员的计算机上访问新帐户 有谁知道如何做到
  • MySQL 如何使用返回多行的 SELECT 子查询插入表?

    MySQL 如何使用返回多行的 SELECT 子查询插入表 INSERT INTO Results People names VALUES SELECT d id FROM Names f JOIN People d ON d id f i
  • Mysql 连接到服务器:用户 root@localhost 的访问被拒绝

    edit9 是否有可能我只是缺少文件夹的一些权限 我真的非常非常感谢更多的建议 edit3 由于这篇文章没有得到足够的回复 而且这绝对是至关重要的 我尽快完成这件事 我重建了我的帖子以显示我认为到目前为止我已经扣除的内容 注意 通过许多不同
  • 数据库“key/ID”设计思想、代理键、主键等

    因此 我最近看到多次提到代理键 但我不太确定它是什么以及它与主键有何不同 我总是假设 ID 是表中的主键 如下所示 Users ID Guid FirstName Text LastName Text SSN Int 然而 维基百科将代理键

随机推荐

  • 如何在 Docker 容器内动态添加 Jenkins 用户和权限

    当我为 python 项目构建声明式 Jenkins 管道时 使用 Pip 时收到以下错误消息 WARNING The directory cache pip or its parent directory is not owned or
  • Chart.js 刻度线和 X 轴之间的空间

    我正在使用 Chart js 版本 3 x 制作一个简单的画布 它只是显示价格的演变 X 轴用于时间 Y 轴用于进化百分比 我已经成功做到了这一点 但现在 我想添加一些风格 我的目标是在标记刻度和 X 轴之间添加一些空间 我用过chart
  • 无法打开 mysql-workbench

    我开始使用 mysql 但无法打开 mysql workbench 当我尝试通过 ubuntu 命令行打开它时 出现以下错误 usr lib mysql workbench mysql workbench bin 符号查找错误 usr li
  • NodeJS 的续集:支持这些功能吗?

    以下是关于sequelize支持的功能的一些问题 续集项目网站 http sequelizejs com 在决定是否使用它之前我想澄清一下 链接 效率 当链接多个查询时 这些查询是收集到对数据库的一个请求中 作为一批操作 还是每个请求单独发
  • fs.readFileSync 不是文件相关的? Node.js

    假设我的项目根目录下有一个名为file xml 假设我在tests 中有一个名为 test js 的测试文件 它有 const file fs readFileSync file xml 如果我现在跑步node tests test js从
  • 以编程方式强制 Cocoa 应用程序以 32 位模式启动

    我有一个 Cocoa 应用程序 通常在任何支持此架构的 Mac 上以完整 64 位模式运行 现在我有一个外部 API 只能作为 32 位插件加载到主程序中 该 API 适用于第三方输入设备 只有一小部分用户会购买该设备 但这对于那一小部分用
  • wpf 多重绑定到视图模型?

    如何向 xaml 中的多个视图模型对象添加多重绑定 我需要绑定IsEnabled上下文菜单的属性为我的视图模型中的两个整数 以下绑定不起作用 因为它是为 GUI 组件设计的 我该如何做才能与我的ints一起工作
  • 获取给定月份的所有日期和日期

    想要检索给定月份的所有日期和日期 目前有这个显示当月的所有天数 但我如何解析指定的月份 list array for d 1 d lt 31 d time mktime 12 0 0 date m d date Y if date m ti
  • Spring Boot可执行jar结构

    我正在尝试运行 Spring Boot 示例应用程序 我在 webapp 文件夹下的 images 文件夹中添加了几张图像 与 WEB INF 同一级别 我创建了可执行 jar 这些图像在网页上正确显示 但是 我很困惑 可执行 jar 中的
  • 如何导出 WAS 6.1 服务器配置

    有没有一种方法可以从 WAS 在 RAD 6 下运行 导出我的服务器设置 以便其他开发人员能够使用相同的脚本来设置他们的环境 要手动执行此操作 请在RAD 6 x 只需右键单击 服务器 视图中的服务器名称并选择以下选项之一 Export s
  • 文件在 rpm 规范文件中列出两次

    我的规范文件的文件部分如下所示 files prefix htdocs config prefix htdocs share settings config inc php 现在 由于配置文件已经包含在 prefix htdocs 我收到警
  • 如何更新反卷积层的权重?

    我正在尝试开发一个反卷积层 或者准确地说是转置卷积层 在前向传递中 我进行了完全卷积 零填充卷积 在向后传递中 我进行有效的卷积 没有填充的卷积 以将错误传递到前一层 偏差的梯度很容易计算 只需对多余维度进行平均即可 问题是我不知道如何更新
  • 是否有一种 Java 数据结构实际上是具有双索引和内置插值的 ArrayList?

    我正在寻找具有以下特征的预构建 Java 数据结构 它应该看起来像 ArrayList 但应该允许通过双精度而不是整数进行索引 请注意 这意味着您可能会看到与原始数据点不相符的索引 即询问与键 1 5 对应的值 EDIT 为了清楚起见 根据
  • Android 分享 Facebook 意图 - 分享文本和链接

    我正在尝试使用 Android 共享意图在 Facebook 上发布内容 它看起来像这样 shareIntent setFlags Intent FLAG ACTIVITY NEW TASK shareIntent setType text
  • Amazon EC2 微型实例没有响应

    我有几个微型实例 几周以来一直运行良好 两者都运行 WordPress 博客 在过去 24 小时内 其中一个已经停止 即使重新启动后我也无法 ssh 登录 另一个实例工作正常 ssh connect to host ec2 xxx xxx
  • Codeigniter 活动记录选择、左连接、计数

    我有一个显示数据库查询结果的表单 这些结果可以有许多其他资产与之相连 我想找到一种方法来显示每个元素有多少资产 例如 我的表是英格兰地区 另一个表是用户居住的地方 我当前有这个代码 this gt db gt select this gt
  • WordPress 评论回复链接不出现

    我正在使用自定义代码来打印评论 但问题是无论我做什么 我都无法在任何评论下打印评论回复链接 这是代码
  • AWS IOT 连接超时异常

    AWSIoTPythonSDK exception AWSIoTExceptions connectTimeoutException 在我的机器上运行示例 python 代码后 我收到此异常 参考了github的例子 https githu
  • Visual Studio 2013 设计器尝试加载错误版本的项目 DLL

    我的解决方案中有一个 Visual Studio 项目 它引用同一解决方案中的类库项目 该项目编译并执行得很好 但是 当我尝试在设计器中打开一个表单时 我收到一条消息 无法加载文件或程序集 MyLibName Version 1 0 547
  • 获取标签包含 GROUP_CONCAT 字段的所有文章

    我有一张桌子articles 其他tags 第三个称为article tags 我想生成一个页面 其中列出特定标签的所有文章 我的查询如下所示 SELECT headline GROUP CONCAT tags tag name AS al