如何阻止某些记录在 SQL 查询中多次显示

2024-01-01

这里是完整的 SQL Fiddle http://rextester.com/MTIFT55374

如您所见,记录来自recommendations表显示多次。但是如果我删除这一行LEFT JOIN cast ON cast.cast_tmdb_id=tmdb_movies.tmdb_id 然后,它们不会多次显示。所以这条线是主要问题。

为了简单起见,我没有在 SQL 查询中使用强制转换表。但我需要它。

是的,我需要group_concat将记录一起显示在我的PHP code

我想这就是所需的全部信息。如果您需要更多信息或希望我再次解释,请告诉我。

编辑:亲爱的@Shadow,他将此建议标记为重复。如果我使用DISTINCT那么,并非所有记录都会显示。因为有可能两部电影的平均评分为7.5


你的问题不太清楚。那是因为你没有表现出想要的结果。

在您的查询中,您将选择一列推荐的电影标题和另一列带有投票的内容。但是,这些并不相关,因为您没有指定订单。因此,例如,第一部推荐的电影可能会显示第五次投票。即使投票按电影排序,仍然很难阅读。

因此,从理想的结果开始。然后才编写查询。

Example:

预期结果:



movie_title       | roles                          | recommendations
------------------+--------------------------------+------------------------
The Dark Knight   | Christian Bale (Bruce Wayne /  | The Dark Knight Rises (7.5),
                  | Batman), Michael Caine (Alfred | Batman Begins (7.5), Iron 
                  | Pennyworth), ...               | Man (7.3), ...
  

因此,我们需要来自演员表(每部电影的所有角色)和推荐表(每部电影的所有推荐)的聚合。先进行聚合,然后连接结果:

SELECT 
  m.movie_title,
  c.roles,
  r.movies as recommendations
FROM tmdb_movies m
LEFT JOIN
(
  SELECT 
    cast_tmdb_id as movie_id,
    GROUP_CONCAT(CONCAT(cast_name, ' (', cast_character, ')') SEPARATOR ', ') as roles
  FROM cast
  GROUP BY cast_tmdb_id
) c ON c.movie_id = m.tmdb_id
LEFT JOIN
(
  SELECT 
    recommendations_tmdb_id as movie_id,
    GROUP_CONCAT(CONCAT(recommendations_title, ' (', recommendations_vote_average, ')')
                 SEPARATOR ', ') as movies
  FROM recommendations
  GROUP BY recommendations_tmdb_id
) r ON r.movie_id = m.tmdb_id
WHERE m.tmdb_id = 1;

这是 reextester 链接:http://rextester.com/FHA48503 http://rextester.com/FHA48503

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

如何阻止某些记录在 SQL 查询中多次显示 的相关文章

  • 实现软删除的最佳方法是什么?

    目前在做一个项目 我们要对大部分用户 用户角色 实现软删除 我们决定添加一个is deleted 0 数据库中每个表的字段并将其设置为 1 如果特定用户角色点击特定记录上的删除按钮 现在为了将来的维护 每个SELECT查询需要确保它们不包含
  • 用 pandas DataFrame 替换 mysql 数据库表中的行

    Python 版本 2 7 6 熊猫版本 0 17 1 MySQLdb 版本 1 2 5 在我的数据库中 PRODUCT 我有一张桌子 XML FEED 表 XML FEED 很大 数百万条记录 我有一个 pandas DataFrame
  • ORDER BY 字段内的 MySQL 子查询。 (没有内连接)

    有很多与此相关的问题 但都具有使用内部联接的相同答案 这 我认为 在这里是不可能的 如果我错了请告诉我 我现在正在做的是调用两个不同的 mysql 查询来获取结果 它工作完美 db gt query SELECT FROM meta WHE
  • st_intersects 与 st_overlaps

    这两个查询有什么区别 select a gid sum length b the geom from polygons as a roads as b where st intersects a the geom b the geom gr
  • 如何通过 SQL 表关联 SQL 中的实体

    我是数据库设计的初学者 我需要为项目创建数据库 我可以用面向对象的术语解释我想要做什么 值得庆幸的是 数据库专家会很友善地向我解释如何在数据库方面处理这个问题 我想创建一个与位置实体 州 城市 有关系的用户 ID 名称 实体 所以在编程语言
  • PHP MySQL 使用选项/选择 HTML 表单标签进行多重搜索查询

    我正在尝试使用两个搜索字段设置基本的 MySQL LIKE 搜索 我不想拥有它 所以它有多个可选搜索字段 例如if isset POST city isset POST name 我不知道如何用 HTML 来做到这一点
  • 如何检测Mysql/innodb中的死锁?

    我知道在 Innodb 中使用事务时不可避免地会发生死锁 并且如果应用程序代码正确处理死锁 它们是无害的 正如手册所说 只需再试一次 所以我想知道 如何检测死锁 死锁是否会发出一些特殊的 mysql 错误号 如果重要的话 我正在使用 PHP
  • 使用子查询 select 创建新表

    我试图从子查询选择创建一个新表 但出现以下错误 附近的语法不正确 SELECT INTO foo FROM SELECT DATEPART MONTH a InvoiceDate as CalMonth DATEPART YEAR a In
  • 如何通过Elasticsearch模糊匹配电子邮件或电话?

    我想通过 Elasticsearch 对电子邮件或电话进行模糊匹配 例如 匹配所有以以下结尾的电子邮件 gmail com or 匹配所有电话开头136 我知道我可以使用通配符 query wildcard email gmail com
  • 删除数据库中的行后如何重新排序ID

    我正在使用 C 来制作具有 sql 数据库的程序 在数据库中我有一个名为Workers 它有一个自动增量和主键ID column 当我删除一条记录时 ID 之间会出现间隙 删除记录后如何重新排序 ID UPDATE 我要做的就是找到记录后将
  • 解析带下划线的 SQL Server 数字文字

    我想知道它为什么有效以及为什么它不返回错误 SELECT 2015 11 Result 11 2015 第二种情况 SELECT 2 1 a a 2 1 检查元数据 SELECT name system type name FROM sys
  • 日期语句之间的 JPQL SELECT [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我想将此 SQL 语句转换为等效的 JPQL SELECT FROM events WHERE events date BETWE
  • MYSQL从每个类别中随机选择一条记录

    我有一个数据库Items表看起来像这样 id name category int 有几十万条记录 每个item可以是 7 种不同的之一categories 对应于categories table id category 我想要一个从每个类别
  • 如何使用 BigQuery 有效地选择另一个表中匹配子字符串的记录?

    我有一个包含数百万个字符串的表 我想将其与包含大约两万个字符串的表进行匹配 如下所示 standardSQL SELECT record FROM record JOIN fragment ON record name LIKE CONCA
  • 随机组合 MySQL 数据库中的两个单词

    我有一个包含名词和形容词的数据库 例如 id type word 1 noun apple 2 noun ball 3 adj clammy 4 noun keyboard 5 adj bloody ect 我想创建一个查询 它将抓取 10
  • PHP 与 MySQL 查询性能( if 、 函数 )

    我只看到这个artice http www onextrapixel com 2010 06 23 mysql has functions part 5 php vs mysql performance 我需要知道在这种情况下什么是最好的表
  • 如何使用 SQL Server 2008 将行复制到同一个表中

    A 到目前为止我的方式 sqlCommand CommandText INSERT Table1 column1 column2 column3 SELECT column1 column2 column3 FROM Table1 WHER
  • 通过触发器应用表的列权限

    现在 我有一个名为 Members 的表 其中包含内容 分为联系人数据 银行数据 现在 管理员应该能够创建 更新 删除用户 这些用户保存在另一个表中 该表只能访问管理员 用户应该获得自己的 mysql 用户帐户 管理员还应该能够设置权限 例
  • 如何通过SQL查询检查是否有JSON函数?

    有SQL 2016 中的 JSON 函数 https learn microsoft com en us sql t sql functions json functions transact sql例如 JSON VALUE JSON Q
  • 如何获取自定义订单的结果? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 代替ASC or DESC 我希望我的查询结果采用特定的自定义顺序 例如 如果我想要的结果不是 A B C D 而是 P A L H 该怎么

随机推荐

  • 扩展 Handlebars.js 模板

    有没有像 Django 那样扩展模板的方法 我的基本模板有一个只需几页的标题 我想为其他模板更改它 类似的东西 extends base html endblock 我正在使用 Ember js 据我所知 这个符号不存在 我也没有在车把模板
  • 带 Boost 的 Node-gyp 包含和库目录

    我正在尝试在我的 Windows 7 计算机上构建一个 Node C 插件 该插件使用 Boost 库中的一些类 然而 运行后 node gyp configure 成功了 当我运行时 我不断受到缺少头文件的攻击 node gyp buil
  • WPF 共享资源字典

    我已经使用自定义类在我的 WPF 应用程序中实现共享资源功能 这是创建和管理字典的示例代码 public class SharedResourceDictionary ResourceDictionary
  • 如何在 UIButton 上制作原生“脉冲效果”动画 - iOS

    我希望在 UIButton 上有某种脉冲动画 无限循环 缩小 缩小 以便它立即引起用户的注意 我看到了这个链接如何使用 webkit animation 向外环创建脉冲效果 https stackoverflow com questions
  • Rails 4 + 引导程序设置资产

    我正在尝试设置引导程序 on Rails4 using bootstrap sass我收到了这个著名的错误 Sprockets FileNotFound couldn t find file bootstrap in app assets
  • 产品目录API失败

    需要帮忙 我尝试从https developers facebook com docs marketing api dynamic product ads ads management v2 3创建的帐户 批准者为phone 创建了企业帐户
  • SKShader 创建视差背景

    使用固定相机的视差背景很容易做到 但由于我正在制作一个自上而下的视图 2D 空间探索游戏 我认为有一个 SKSpriteNode 填充屏幕并作为我的 SKCameraNode 的子级并使用 SKShader 绘制一个视差星空会更容易 我继续
  • 为什么将带有尾随空格的行提交到源代码管理中是不好的?

    为什么将带有尾随空格的行签入到源代码管理中是不好的 这会导致什么类型的问题 基本上是错误的差异 如果差异仅显示 真实 更改 则会很有帮助 一些 diff 程序会忽略空格 但最好首先避免虚拟更改 当然 如果它在同事的机器上换行也无济于事
  • 第三方广告提供商的广告如何传送到网页?

    当网页加载到浏览器中时 第三方广告提供商如何决定向网页投放什么广告 这些数据以什么格式传送 假设我的网页不包含与广告相关或差异化的内容 但我确实了解我的用户的很多信息 人口统计资料 兴趣 浏览历史记录等 因此 我想要加载的广告必须依赖于用户
  • 如何使 iframe 适合整个屏幕而不指定尺寸?

    如果我不指定任何尺寸 iframe 就会显得很小 如果我确实按如下方式指定尺寸 则它无法针对不同的屏幕分辨率正确缩放 有没有办法自动让 iframe 拉伸到整个屏幕 Use
  • 如何在 SBT 构建中跳过测试?

    我有一个 SBT 0 7 5 项目 它的一些测试用例失败了 在修复所有测试用例之前 我想跳过测试来生成 JAR 是否有任何命令行参数告诉 SBT 跳过所有测试 例如 Maven 的 Dmaven test skip true flag 我遇
  • 在主线程之外创建 QDialog 的方法

    我正在尝试在 QT 中创建一个客户端应用程序 它需要两个线程进行处理和可变数量的窗口实例 但我很难弄清楚如何在处理线程之一内创建一个新窗口 我知道所有 ui 元素必须在与 QApplication 类相同的线程中创建 但我需要能够实例化 或
  • 如何使用 git fetch 覆盖本地标签?

    如何使用 git fetch 覆盖本地标签 我想用远程标签替换本地标签 从 Git 2 20 开始 您需要显式指定强制标志 git fetch origin tags force 在 Git 版本 2 20 之前 与使用 git push
  • 推送“未签出”分支

    我想推送一个分支 不是当前的 而不必先检查它 我怎样才能实现这一点 这就是我要做的 currently in master git checkout feature git push origin feature git checkout
  • seaborn boxplot:更改均值的颜色和形状

    我似乎找不到答案的简单问题 如何更改 Seaborn 箱线图中平均指标的颜色和形状 它默认为绿色三角形 通常很难看到 我试图在 seaborn 文档和 matplotlib 文档中找到答案 stackoverflow 上还有一个相关问题 有
  • Foundation 5、Simple Form 和 Rails - 如何让“提示”CSS 类正常工作

    我已经搜索了几天并进行了实验 但我无法获得要显示的简单表单 gem 提示 CSS 类 这只是一个类 当您将鼠标悬停在表单输入上时显示表单输入的提示 我正在使用 Rails 4 1 以及最新的 simple form gem 和 Founda
  • Java api 到 exiftool

    我对用 java api 或类似的东西解析 exiftool 结果很感兴趣 我一直在研究 但没有找到任何例子 例如 我如何在我的java项目中获得这些结果 Exif工具版本号 8 22 文件名 Exif工具 jpg 目录 t images
  • 使用 GCC 和 Egypt 生成综合调用图

    我正在尝试生成一个全面的调用图 包括对 Linux 运行时等的低级调用 我使用 fdump rtl expand 静态编译了我的源文件并创建了 RTL 文件 我将其传递给名为 Egypt 的 PERL 脚本 我认为是 Graphviz Do
  • 在数据网格中查找文本框

    我有一个包含四列的数据网格 因此 从 C 端的这个数据网格中 我想找到 name headBox 的特定文本框 我该怎么做呢 我的该列的 xaml 如下所示 此部分位于 Datagrid Columns 中 该列位于名称 dgrid 的 d
  • 如何阻止某些记录在 SQL 查询中多次显示

    这里是完整的 SQL Fiddle http rextester com MTIFT55374 如您所见 记录来自recommendations表显示多次 但是如果我删除这一行LEFT JOIN cast ON cast cast tmdb