你能解决这个简单的 SQL 查询吗?

2024-03-16

假设这是一个销售相机的网站。这是我的实体(表):

Camera: A simple camera
Feature: A feature like: 6mp, max resolution 1024x768, 

事情是在相机和功能之间我有一个多对多的关系,所以我有一个额外的表:

camera -> cameras_features -> feature

所以,查询很简单:

如何获得所有具有特征1,2和3的相机?

这就像构建位图索引。

可用于测试解决方案是否正确的数据

C1 has features 1,2,3
C2 has features 1,2,4
C3 has features 1,2

以下是查询和预期结果:

  • 显示所有具有功能 1,2 和 3 的摄像机: C1
  • 显示所有具有功能 1,2 和 4 的摄像机: C2
  • 显示所有具有功能 1 和 2 的摄像机: C1, C2 and C3

这是我所做的(它有效,但它真的很难看,不想使用它):

SELECT * FROM camera c

WHERE c.id IN (    
    (SELECT c.id FROM camera c JOIN cameras_features f ON (c.id=f.camera_id)
    WHERE f.feature_id=1)
        q1 JOIN -- simple intersect
    (SELECT c.id FROM camera c JOIN cameras_features f ON (c.id=f.camera_id)
    WHERE f.feature_id=2)
        q2 JOIN ON (q1.id=q2.id)
)

SELECT camera.id
FROM camera JOIN camera_features ON camera.id=camera_features.camera_id
GROUP BY camera.id
HAVING sum(camera_features.feature_id IN (1,2,3))=3

3是特征的数量(1,2,3)。并假设(camera_id,feature_id)是独一无二的camera_features.

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

你能解决这个简单的 SQL 查询吗? 的相关文章

  • 如何在 MySQL 中求和时间?

    正如您在图片中看到的 我有一份停机报告 显示了所选工厂在选定日期的停机时间 现在我想添加所有的值 Time Duration 列并将其显示在附近的单独显示中 TOTAL TIME DURATION 例如 在图像中 所选日期为 2015 年
  • 如何查找当前数据库类型

    我们有一个 SQL 脚本可以在多种类型的数据库上执行 是否可以获取正在执行 SQL 脚本的当前数据库的类型 注意 我们不能使用非标准 SQL 即 TSQL 等 不 ANSI SQL 中没有任何关于确定数据库供应商的内容
  • MySQL 通过 current_timestamp 选择上个月的数据

    直到今天 当我使用 MySQL 并需要对日期 时间执行操作时 我使用带有 unix 时间戳的 int 列 没有出现任何问题 但今天在阅读了一些指南后 我决定默认使用 current timestamp 测试时间戳列 所以我感兴趣如何按列选择
  • 不带 GROUP BY 的聚合查询

    这个查询似乎在我的旧机器上完美运行 但是 在我的 MySQL 5 7 14 和 PHP 5 6 25 的新机器上 它会抛出错误 致命错误 未捕获异常 PDOException 并带有消息 SQLSTATE 42000 语法错误或访问冲突 1
  • SQL 查询用于计算每个客户的订单数量和总金额

    我有两张桌子Order与列 OrderID OrderDate CID EmployeeID And OrderItem与列 OrderID ItemID Quantity SalePrice 我需要返回客户 ID CID 每个客户的订单数
  • PHP PDO 使用 bindParam 第一个参数(不带冒号)[重复]

    这个问题在这里已经有答案了 请检查这个 user id int GET user id sql DELETE FROM users WHERE user id user id query db gt prepare sql query gt
  • Postgresql 一张表的多个计数

    我想从表中的两列中获得这些列中值的统一计数 例如 两列是 表 报告 type place one home two school three work four cafe five friends six mall one work one
  • SQL Server 2008R2 和创建 XML 文档

    论坛上的第一篇文章 因为我真的被这个问题困住了 以下查询正确地将有效的 XML 文档分配给 xTempXML 变量 类型为 xml 注 文档的长度 转换为varchar max 711 select xTempXML select Pres
  • PHP 和 MySQL - 高效处理多个一对多关系

    我正在寻求一些有关使用 MySQL 和 PHP 检索和显示数据的最佳方法的建议 我有 3 个表 所有一对多关系如下 Each SCHEDULE有很多覆盖每个覆盖都有很多地点 我想检索这些数据 以便它可以全部显示在单个 PHP 页面上 例如列
  • 通过 osql.exe 运行脚本时出现问题

    我尝试以这种格式运行我的软件的更新脚本 osql exe i path to script U 用户 P 密码 S sqlserver 位置 d 数据库名称 n b 大多数脚本的格式相同 并且都以 GO 结尾 其中很多都运行得很好 但随机脚
  • SQL 2008全文索引填充延迟

    我的经理说 在基础表数据更改后 可能需要一段时间才能更新全文搜索索引 例如 如果我有一张桌子Products有一个柱子Description我更新了该描述 然后我可能需要一些时间才能搜索该新描述 真的吗 这需要多长时间 SQL 2008 对
  • 如何在 MySQL 中测试 Select for Update

    我正在表演SELECT FOR UPDATE或 InnoDB 表的行级锁定 我的目的是只有一个请求可以读取同一行 因此 如果两个用户同时请求相同的数据 其中只有一个人获取数据 即第一个触发查询的人 但是我如何测试锁定是否已放置 因为我正在通
  • mysql 中的二进制、十六进制和八进制值

    我对在 mysql 数据库中使用二进制 十六进制和八进制系统非常感兴趣 首先 请给我一个建议 为什么我们在存储信息时需要它们 因为信息太多 或者为什么 另外 哪种类型的值必须存储在标记系统中 另外这里还有像 这是例子 gt SELECT 5
  • 实现软删除的最佳方法是什么?

    目前在做一个项目 我们要对大部分用户 用户角色 实现软删除 我们决定添加一个is deleted 0 数据库中每个表的字段并将其设置为 1 如果特定用户角色点击特定记录上的删除按钮 现在为了将来的维护 每个SELECT查询需要确保它们不包含
  • 在存储过程中验证用户的最简单方法?

    我需要一个存储过程 可以通过发送以下内容来检查登录尝试时他们是否是有效用户login and password查看它们在数据库中是否匹配 有没有一种简单的方法可以做到这一点 如果没有更多信息 我目前能提供的最好信息是 CREATE STOR
  • 用 pandas DataFrame 替换 mysql 数据库表中的行

    Python 版本 2 7 6 熊猫版本 0 17 1 MySQLdb 版本 1 2 5 在我的数据库中 PRODUCT 我有一张桌子 XML FEED 表 XML FEED 很大 数百万条记录 我有一个 pandas DataFrame
  • 如何从批量数据中的mysql列中删除所有非数字字符

    我想从列中删除所有非数字字符 我的数据库中有大量数据 目前我正在使用以下链接中描述的方法 http venerableagents wordpress com 2011 01 29 mysql numeric functions http
  • 数据库字段中的逗号分隔值

    我有一个产品表 该表中的每一行对应一个产品 并由唯一的 ID 标识 现在 每个产品都可以有多个与该产品关联的 代码 例如 Id Code 0001 IN ON ME OH 0002 ON VI AC ZO 0003 QA PS OO ME
  • ORDER BY 字段内的 MySQL 子查询。 (没有内连接)

    有很多与此相关的问题 但都具有使用内部联接的相同答案 这 我认为 在这里是不可能的 如果我错了请告诉我 我现在正在做的是调用两个不同的 mysql 查询来获取结果 它工作完美 db gt query SELECT FROM meta WHE
  • 如何在MYSQL中将整个字符串小写并保持第一个大写[重复]

    这个问题在这里已经有答案了 我的表栏目 我预期的输出会在列中发生变化 Smith Allen Doyle Dennis Baker Waker 这是我尝试过的 但不起作用 UPDATE TABLE employee SET last nam

随机推荐

  • 如何选择所有列以及 Oracle 11g 中 CASE 语句的结果?

    我想选择 而不必键入所有单独的列 但我还想包含带有 case 语句的自定义列 我尝试了以下方法 select case when PRI VAL 1 then High when PRI VAL 2 then Med when PRI VA
  • Java MyBatis 存储过程调用带 OUT 参数

    第一个问题 我试图返回一个 OUT 参数 而不是带注释的结果集 首先 这可能吗 如果是的话 人们会怎样做呢 MyBatis 3 0 6 数据库 SQL Server 2008 以下是我在 UserDAO 中调用方法的语法示例 Select
  • Control.ResolveUrl 与 Control.ResolveClientUrl 与 VirtualPathUtility.ToAbsolute

    在解析以波形符 开头的路径时 使用其中一种方法比使用另一种方法有什么好处吗 一般来说 更好的做法是什么 您应该在 html 中发送相对路径还是绝对路径 ResolveUrl 和 ResolveClientUrl 的区别在于 ResolveC
  • MongoDB 记录太多?

    我有一个与 MongoDB 交互的 PHP 应用程序 直到最近 该应用程序运行良好 但几天前我发现该应用程序开始响应非常慢 其中一个收藏已突破 500K 条记录 因此 对该集合的任何查询的 MongCursor 都会超时 我认为 500K
  • 如何通过 ajax 操作向表添加行link

    我是 MVC4 的新手 我遇到了一个问题 当我想在 ajax 中向表中添加一行时 它似乎不是我想要的 这是我的代码 table thead tr th T n h c sinh th th Gi o l vi n th th N m H c
  • 避免序列化 REST 服务中的某些属性

    我有一个 Net应用程序分为客户端和服务器端 服务器提供REST服务 使用WCF 我有这样的服务定义 WebGet UriTemplate Customers id Customer GetCustomerById string id We
  • 对类型为其他模型的属性进行环回验证

    我定义了两个模型 位置和地址 定义如下 address properties address1 type string required true public true dataSource db plural addresses loc
  • Flask 蓝图在蓝图中查找静态文件而不是根目录

    我的蓝图应该在根目录中查找静态文件 但事实并非如此 假设我有一个名为 前端 的蓝图 frontend 仅传入了 template folder frontend 即使我将静态文件放在 app frontend static file css
  • 如何:Parallel.Foreach 执行许多进程,每个进程运行一个新进程(但一次一个)? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我确信有人知道这一点 我将非常感谢您
  • 休眠中的未知实体

    执行主类时出现此错误 我正在尝试在表投资组合中插入新记录 正如您所看到的 我使用 Hibernate ORM 模型来做到这一点 另外 可以说 hibernate 与数据库的连接没有任何问题 Exception in thread main
  • 同一模型上雄辩的亲子关系

    我有一个模型CourseModule 并且每个项目都与同一模型相关 数据库结构 模型中的关系 public function parent return this gt belongsTo App CourseModule parent i
  • Java接口命名约定[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用线程进行 Android 媒体录制

    我正在开发一个 Android 应用程序 只需使用按钮即可开始和停止录制 我用了线程 我创建了三个类 一个开始录制 一个停止录制和主类 问题是我可以在手机中看到该文件 但它是空的 并且手机给我一条消息 无法播放视频 我希望它与线程一起使用
  • 仅当用户在计算机上时才显示通知

    检测用户当前是否在其计算机上 即以某种方式使用它 的最佳方法是什么 我们有一个应用程序 仅当用户在计算机前时才发出通知 带有关闭按钮的横幅通知 例如 想象一个股票交易应用程序 它提醒用户各种可能只与几分钟相关的时间敏感信息 如果用户离开计算
  • pygtk glib.timeout_add():如何判断计时器是否没有被销毁?

    在我的应用程序中 我使用一个函数来显示带有超时的 GtkInfoBars 如所述https stackoverflow com a 1309257 406281 https stackoverflow com a 1309257 40628
  • CSS:图像链接,悬停时更改

    我有一个图像 它是一个链接 我想当用户将鼠标悬停在链接上时显示不同的图像 目前我正在使用这段代码 a href http twitter com me title Twitter link div class sidebar poster
  • 通过EntityFramework获取表的最新Value

    我有一个包含多个字段的表 每个字段都通过单独的 ViewModel 单独更新 现在我想获取特定字段的最新值 也许它已在我表的第五条记录中更新 好吗 现在我写的看起来像这样 public ViewResult ShowPiece var co
  • 对数据库持久对象进行版本控制,您会如何? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 与数据库架构的版本控制无关 与数据库交互的应用程序通常具有由许多表中的数据组成的域对象 假设应用程序要支持这些域对象的 CVS 意义上的版本
  • 使用 Bean Utils 填充 POJO 时设置字段的默认值

    我正在尝试使用填充 POJO 的字段BeanUtilsBean populate object fieldNameVSfieldValueMap method 我的 POJO 看起来像 class POJO Integer intField
  • 你能解决这个简单的 SQL 查询吗?

    假设这是一个销售相机的网站 这是我的实体 表 Camera A simple camera Feature A feature like 6mp max resolution 1024x768 事情是在相机和功能之间我有一个多对多的关系 所