MYSQL通过两个键内连接两个表

2024-06-11

我正在执行查询以返回存储在 sb_carts 表中的所有用户购物车。存储在 sb_carts 中的产品信息通过两个键 Product_sku 和 school_id 引用。它需要参考两者来返回具有独特库存水平等的独特产品。

当我执行以下查询时,它返回一行,我期望 3 行。 我尝试将内部联接分成两个单独的联接,但这仍然只返回 1 个结果。仅在一个键上加入可以获得所需的结果,但可能会重新调整错误的产品。左连接返回 3 行,但某些数据缺少特定于产品的数据

这是我正在做的事情的一个简化示例



SELECT sb_carts.product_sku
FROM sb_carts 
INNER JOIN sb_products ON sb_products.sku = sb_carts.product_sku 
AND sb_products.school_id = sb_carts.school_id
WHERE sb_carts.order_id = 0 
AND sb_carts.user_id = 2 
GROUP BY sb_carts.cart_id
  

完整查询看起来像



SELECT COUNT(DISTINCT sb_carts.cart_id) as quantity, 
sb_carts.* FROM sb_carts 
INNER JOIN sb_children ON sb_children.child_id = sb_carts.child_id 
INNER JOIN sb_school_entities ON sb_school_entities.school_id   = sb_children.school_id 
INNER JOIN sb_products ON sb_products.sku = sb_carts.product_sku 
AND sb_products.school_id = sb_carts.school_id LEFT JOIN sb_houses ON sb_children.house_id = sb_houses.id 
LEFT JOIN sb_refund_cart ON sb_carts.cart_id = sb_refund_cart.cart_id 
WHERE sb_carts.order_id = 0 
AND sb_carts.user_id = 2 
GROUP BY sb_carts.child_id, sb_carts.product_sku, sb_carts.school_id 
ORDER BY sb_children.dob_year, sb_children.dob_month, sb_children.dob_day ASC
  

问题最有可能是GROUP BY。即使购物车中有多个产品,这也只会为每个购物车 ID 返回一条记录。要获得您想要的,请尝试以下操作:



SELECT sb_carts.cart_id, sb_carts.product_sku
FROM sb_carts 
INNER JOIN sb_products ON sb_products.sku = sb_carts.product_sku 
AND sb_products.school_id = sb_carts.school_id
WHERE sb_carts.order_id = 0 
AND sb_carts.user_id = 2 
ORDER BY sb_carts.cart_id
  

这将返回两列(购物车 ID 和 SKU)而不是一列,并且一个购物车 ID 的所有商品将在查询中显示为连续行。

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

MYSQL通过两个键内连接两个表 的相关文章

  • 使用 SQLAlchemy 进行多重联接

    我有这个数据库模型 class Distributor Base tablename distributor id Column Integer primary key True commercial address id Column I
  • 过去 24 小时内最流行的 PHP MySQL 查询

    假设我想获得过去 24 小时内点赞最多的 10 条记录 这是我到目前为止所拥有的 date date o m d query SELECT date created COUNT to from to FROM likes WHERE dat
  • C# Fluent API 将两个属性映射到同一列

    我的问题实际上很简单 这是MySQL表 俱乐部类别 正如您所看到的 它将俱乐部与类别链接起来 Field Type Null Key Default Extra CategoryId int NO PRI NULL ClubId int N
  • AND OR 导致显示的结果多于应有的结果

    我正在尝试显示特定时间范围内匹配的结果 效果很好 但是 我想添加一个子句 表示显示的结果必须是 party type1 or 2 所以我这样做了 WHERE start datetime gt DATE START SELECTED AND
  • Laravel 插入三向数据透视表

    Summary 我正在构建音乐发现服务 我的问题是 如何将数据插入三向数据透视表 标签 跟踪 用户 Schema 我看到了这个架构在 LaravelSD http www laravelsd com share WNmzz8 它由六个主表
  • 迁移 WordPress 中的小部件设置

    我在工作和其他地方已经完成了很多从一台服务器到另一台服务器的 WordPress 迁移 但我一直无法理解的一件奇怪的事情是为什么小部件设置永远不会被继承 我将转储 MySQL 数据库 用实时域查找 替换 localhost 通过 SSH 将
  • 尝试使用 PHP / Html 从注册表单将数据输入到 SQL 表中

    我尝试了很多不同的事情并进行了很多搜索但没有解决方案 我正在尝试使用 html 表单将数据提交到 sql 表 这是我的 register php 文件的代码 con mysqli connect localhost database nam
  • 不同的数据库使用不同的名称引用吗?

    例如 mysql引用表名使用 SELECT FROM table name 注意 其他数据库是否使用不同的字符来引用其表名 这种引号的使用称为分隔标识符 它是 SQL 的重要组成部分 因为否则您将无法使用以下标识符 例如表名和列名 包含空格
  • 高级 MySQL:查找民意调查响应之间的相关性

    我有四个 MySQL 表 users 身份证号 姓名 polls ID 文本 options id poll id 文本 回应 id poll id 选项 id 用户 id 给定一个特定的民意调查和一个特定的选项 我想生成一个表格 显示其他
  • SQL IN 子句比单个查询慢

    我正在使用 Hibernate 的 JPA 实现和 MySQL 5 0 67 MySQL 配置为使用 InnoDB 在执行 JPA 查询 转换为 SQL 时 我发现使用IN子句比执行单个查询慢 例子 SELECT p FROM Person
  • 将波斯语字符串发送到mysql

    我正在尝试发送Persian字符串到mysql数据库 但它将数据保存为这样的 D8 AC D8 AF DB 8C D8 AF 英文字符串没有问题 var new this val ajax url url new type GET succ
  • 在MySQL中永久设置auto_increment_offset

    我以 root 身份运行命令 set auto increment offset 2 但从其他连接上看不到效果 为什么不 它是全球性的 From http dev mysql com doc refman 5 1 en replicatio
  • Mysql 中的 MD5 和 Salt

    如何 解密 各种电商存储的密码添加 盐 我不是密码专家 所以 在过去 我使用过类似的东西 SELECT FROM mytable WHERE email email AND passwd MD5 pwd MySql MD5 函数只接受一个参
  • Node.js - 我可以在 PhoneGap / Cordova 应用程序上安装 NPM 包吗?

    感谢 Cordova 我正在构建一个移动应用程序 并且由于 Cordova 基于 Node js 我认为我可以在应用程序中使用 NPM 包 例如 我希望我的移动应用程序能够与远程 MySQL 数据库通信 我想我可以使用 mysql NPM
  • 两个表之间可以有两种关系吗?

    有两个表 EMPLOYER 和 EMPLOYEE 由于每个 EMPLOYEE 都被分配给一个 EMPLOYER 因此他们之间存在 1 N 关系 简单的事情 但我也希望能够模拟一种情况 每个雇主都可以选择他的one最喜欢的员工 他最好什么也不
  • 为什么java字符串在MYSQL中不保存为UTF-8?

    message new String round id getBytes UTF 8 conn DriverManager getConnection jdbc mysql host db useUnicode true character
  • 使用存储过程并发访问MySQL数据库

    我有一个存储过程 它将读取然后增加数据库中的值 许多程序同时使用这个特定的过程 我担心并发问题 特别是读写器问题 有人可以建议我任何可能的解决方案吗 thanks 首先 正如另一篇文章中所述 使用 InnoDB 从 MySQL 5 5 开始
  • MySql 完全联接(联合)和多个日期列的排序

    一个相当复杂的 sql 查询 我可能使它变得更加困难 我有两张桌子 消息 newsid 日期时间 新闻文本 图片 图片ID 日期时间 imgPath 两者没有关系 我只是在新闻 图片创建的日期之前加入 到目前为止的 SQL SELECT F
  • 重新排列mysql中的主键

    从MySQL表中删除一些行后如何重新排列主键列值 例如 一个包含 4 行数据的表 主键值为 1 2 3 4 当删除第2行和第3行时 第4行的键值变为2 请帮助我找到解决方案 为什么要这样做 你不需要重新排列您的密钥 因为它只是记录的数字和标
  • 将表与同一个表的前一条记录连接起来

    我有一个包含历史记录的表 由主表中的多个触发器发布到那里 我想在历史表上创建一个 select 语句 其中每个记录都由其先前的记录 由相同的 LineID 和最高的 ActionDate 标识 连接 这样我就可以提取这两者之间的差异 我尝试

随机推荐

  • php 是否有内置的 base32 值转换?

    我知道我可以使用 number format 但是有没有办法表示 base32 数字 例如 十六进制可以用0x 来表示 八进制可以用前面的0来表示 php中有什么可以表示base32数字的吗 使用内置函数base convert 例如 To
  • 请建议 D3.js 进行 CSV 数据导入

    我正在尝试使用 D3 js 导入 CSV 数据 var englishArray d3 csv data csv function d return d value function error data var englishArray
  • 如何中止触发器中的多行插入

    使用 SQL Server 2005 我已经声明了一个触发 AFTER INSERT UPDATE 的触发器 在这个触发器中 我使用 WHILE 和 CURSOR 在 INSERTED 表的行上循环 当我发现一行不满足特定条件时 我希望触发
  • RxJS 将数组映射到可观察对象并返回到数组中的普通对象

    我有一个对象数组 我需要将每个对象分别传递到异步方法中 后面的过程是用 Promise 处理的 然后通过转换回 ObservableObservable fromPromise 需要这种方式 因为在任何时候只传递单个对象的情况下都会使用相同
  • switch 语句中的 continue 2 和break

    我是 PHP 新手 在网上看到了下面的代码 它有continue 2 and break一起在switch case陈述 这是什么意思 foreach elements as element switch element type case
  • MATLAB 教程中的 SIFT 实现

    我正在寻找 MATLAB 中的一些基本 SIFT 实现 我需要从第一原则来写它 另外 我正在寻找一些可以解释程序中发生的事情的内容 Vedali 的代码和 David Lowe 的代码超出了我的理解范围 如果您是 Matlab 用户 您一定
  • Mac OS X 上的 ASP.NET MVC 5

    我想了解如何在运行 OS X 10 10 5 的 Mac 上使用 Microsoft ASP NET 框架构建网站 我将跟随一个使用 ASP NET MVC 5 的在线课程 到目前为止我读过的所有教程都说要使用Homebrew http b
  • 失败 - 下载 EPPlus.dll 制作的 Excel 文件时出现网络错误

    我尝试下载由EPPlus dll来自 asp net c Web 表单应用程序 但我失败了 网络错误 需要注意的是 上述错误仅发生在 chrome 中 在其他浏览器中可以成功完成该工作 顺便说一下 这个错误不会发生在我的本地主机上 它只发生
  • Spring:从另一个bean访问bean属性

    我有两颗豆子 配置管理器 public class ConfigurationManager private Configuration configuration public void init Loads a configuratio
  • 文本框和默认按钮绑定更新得太晚了

    我有一个带有这两个控件的简单 WPF 对话框
  • CSS:将边框应用于选项卡焦点图像

    使用 CSS 如何在使用键盘 TAB 的焦点周围放置边框以在页面中导航 这里展示了如何使用文本而不是图像来完成此操作 http www joepettersson com demo the outline property http www
  • MATLAB:具有复数的 printmat

    我想使用 MATLAB 的printmat显示带有标签的矩阵 但这不适用于复数 N 5 x rand N 1 y rand N 1 z x 1i y printmat x y z fftdemo N 1 2 3 4 5 x y x iy O
  • 将 CSV 文件读取到嵌套对象

    我有 CSV 文件 例如 Title Column Value A Z1 1 A Z1 2 A Z1 3 A Z2 1 A Z2 5 B Z3 4 B Z3 6 我想将此 csv 文件读入以下类层次结构 我想最终得到一个列表MyClass
  • Xcode:为我自己的应用程序创建自定义键盘

    我正在开发一个数学应用程序 所以我需要一个特定的键盘 我只能取小数点 但缺少正 负 按钮 现在我想编写一个自定义键盘 或者我想编辑小数点 什么更容易 如果我要编写自己的自定义键盘 我可以使用自定义键盘扩展吗 还是必须为单独视图中的每个数字创
  • 层变换矩阵(CATransform3D等)但是用IBDesignable?

    本课程将透视一个直立的图像 它工作完美 但不能在 Storyboard 中使用 IBDesignable 实时工作 这是非常悲伤的 是否可以使用CATransform3D等通过IBDesignable在Storyboard上实时显示 Twi
  • sqoop 通过 oozie 导出失败

    我正在尝试将数据导出到mysql from hdfs通过sqoop 我可以通过 shell 运行 sqoop 并且它工作正常 但是当我通过调用oozie 它出现以下错误并失败 我还包括了罐子 没有描述性日志 sqoop脚本 export c
  • Android 在绘制之前获取视图的位图?

    我正在寻找一个视图层次结构并将其转换为位图 使用view getDrawingCache http developer android com reference android view View html getDrawingCache
  • HTTP 重定向图像可以吗?

    返回图片资源时返回301 302 303代码可以吗 我过去曾这样做过 而且似乎有效 这是好的做法吗 它与大多数浏览器兼容吗 是的 您可以重定向图像 浏览器将遵循重定向 但出于性能原因 您通常希望将重定向保持在最低限度 因为每个重定向都需要单
  • VBA getelementsbytagname问题

    早上好 我正在尝试提取 HTML 表信息并在 Excel 电子表格上整理结果 我正在使用getelementsbytagname table 0 函数来提取 HTML 表格信息 效果很好 有人可以告诉我这有什么意义吗 0 桌子之后 另外 我
  • MYSQL通过两个键内连接两个表

    我正在执行查询以返回存储在 sb carts 表中的所有用户购物车 存储在 sb carts 中的产品信息通过两个键 Product sku 和 school id 引用 它需要参考两者来返回具有独特库存水平等的独特产品 当我执行以下查询时