Mysql语句(FULL JOIN语法错误)

2024-03-03

我的 sql 语句出了什么问题,它说问题出在 FULL JOIN 附近,但我很困惑:

SELECT `o`.`name` AS `offername`, `m`.`name` AS `merchantName` 
FROM `offer` AS `o` 
FULL JOIN `offerorder` AS `of` ON of.offerId = o.id 
INNER JOIN `merchant` AS `m` ON o.merchantId = m.id 
GROUP BY `of`.`merchantId` 

请温柔一点,因为我不是 sql 基础者


MySQL不提供完整连接,您可以使用

  • 一对 LEFT+RIGHT 和 UNION;或者
  • 使用 LEFT、RIGHT 和 INNER 的三元组以及 UNION ALL

该查询也是非常错误的,因为您有一个 GROUP BY 但您的 SELECT 列不是聚合。

将其正确转换为 LEFT + RIGHT + UNION 后,您仍然会遇到从每个不同的随机记录中获取报价名称和商家名称的问题of.merchantid,甚至不一定来自同一条记录。

因为您有针对 o.merchant 的 INNER JOIN 条件,所以不需要 FULL JOIN,因为"offerorder"没有匹配的记录"offer"将使 INNER JOIN 失败。这会将其变成 LEFT JOIN(可选)。因为你们正在分组of.merchantid, 任何缺失的offerorder记录将作为merchantid 在“NULL”下分组在一起。

这是一个可行的查询,对于每个merchantid,它只会显示商家提供的一个报价(按字典顺序排序时,第一个报价)。

SELECT MIN(o.name) AS offername, m.name AS merchantName 
FROM offer AS o 
LEFT JOIN offerorder AS `of` ON `of`.offerId = o.id 
INNER JOIN merchant AS m ON o.merchantId = m.id 
GROUP BY `of`.merchantId, m.name

注:连接o.merchantid = m.id是高度可疑的。你的意思of.merchantid = m.id?如果是这种情况,请将 LEFT 连接更改为 RIGHT 连接。

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

Mysql语句(FULL JOIN语法错误) 的相关文章

  • 测验程序的 MySql 数据库设计

    我目前正在开发一个项目 主要是创建一个测验应用程序 它将能够进行包含 10 到 20 个问题的多项选择题或简答题的测验 它需要能够根据正确答案检查用户的答案 然后对用户的答案进行评分 稍后 我可能会实现一个后端功能来在线创建测验 但现在我将
  • 自动将范围内的值插入表中

    是否可以使用 MySQL 语句自动将值插入表中 即从 30 到 200 这是一个应该执行此操作的存储过程 CREATE PROCEDURE insert range BEGIN DECLARE i INT DEFAULT 30 WHILE
  • 如何将存储过程中的值返回到 EF

    我试图通过 EF 调用存储过程并从存储过程中检索返回值 我用过this https stackoverflow com questions 6861737 executesqlcommand with output parameter an
  • 增量SQL查询

    我的应用程序有一组固定的 SQL 查询 这些查询以轮询模式运行 每 10 秒一次 由于数据库的大小 gt 100 GB 和设计 超级规范化 我遇到了性能问题 每当数据库上发生更改查询结果的 CRUD 事件时 是否可以对给定查询进行增量更改
  • 如何在可能为空值的字段上创建唯一索引(Oracle 11g)?

    这是包含 3 列的示例表 ID UNIQUE VALUE UNIQUE GROUP ID 我希望可以允许以下记录 1 NULL NULL 2 NULL NULL or 3 NULL 7 4 123 7 or 注意 此条件不允许unique
  • Python Twisted 和数据库连接

    我们的工作项目包括同步应用程序 短期 和异步 Twisted 应用程序 长期 我们正在重构我们的数据库 并将构建一个 API 模块来解耦该模块中的所有 SQL 我想创建该 API 以便同步和异步应用程序都可以使用它 对于同步应用程序 我希望
  • 可以有多个用户作为 MySQL 存储过程的定义者吗?

    我在 MySQL 存储过程方面遇到了一些困难 并且感到有点沮丧 我有一组由 Bob 创建的 SP 由于他是定义者 只有他才能看到它们的 CREATE 语句 修改它们等 Mary 可以在 MySQL Workbench 的架构中看到 Bob
  • MyISAM 方言生成错误的 DDL

    我们使用 MyISAM 方言org hibernate dialect MySQLMyISAMDialect使用JPA2自动生成DDL文件3 6 9 FinalMySQL 5 5 数据库上的 hibernate 提供程序 The creat
  • 将数据从 MS SQL 导入 MySQL

    我想从 MS SQL Server 导入数据 通过某种正则表达式运行它以过滤掉内容 然后将其导入 MySQL 然后 对于每个查询 我希望显示来自第三个数据库的相关图像 明智地导入和链接 最简单的方法是什么 谢谢 澄清 它是一个 PHP 应用
  • Navicat utf8 不适用于 mysql 数据库

    我目前正在尝试合并两个不同步的表达式引擎数据库之间的数据更改 为此我选择使用 navicat 该网站在模板中大量使用希腊字符集 当我在 phpmyadmin 中查看希腊语表字段数据时 我按预期看到了希腊语字符 当我将它们加载到 Navica
  • 如何删除非空约束?

    假设创建了一个表 如下所示 create table testTable colA int not null 您将如何删除非空约束 我正在寻找类似的东西 ALTER TABLE testTable ALTER COLUMN colA DRO
  • ORDER BY id 或 date_created 显示最新结果?

    我有一个表 实际上有几个 我想首先从中获取最新条目的结果 这是我的ORDER BY条款选项 date created INT 从不改变值 id 当然是INT AUTO INCRMENT 两列应同等地代表记录插入的顺序 我自然会使用date
  • 从 datagridview 选定的行更新 mysql 数据库

    我有一个 datagridview 它在表单加载事件上加载 mysql 数据库表 t pi clients 并且我有另一个选项卡 其中包含 t pi client 相应列的文本框 它能够从 fullrowselect 模式获取数据到这些文本
  • 子查询与连接

    我重构了从另一家公司继承的应用程序的一个缓慢部分 以使用内部联接而不是子查询 例如 WHERE id IN SELECT id FROM 重构后的查询运行速度提高了约 100 倍 50 秒到 0 3 我预计会有改进 但谁能解释为什么它如此剧
  • MySql JOINS 的优点/缺点

    当我从多个表中选择数据时 我经常使用 JOINS 最近我开始使用另一种方式 但我不确定从长远来看会产生什么影响 例子 SELECT FROM table 1 LEFT JOIN table 2 ON table 1 column table
  • 使用 RMySQL 会干扰 RPostgreSQL

    我有一个 R 脚本 我想从 MySQL 数据库中提取一些数据 然后从 PostgreSQL 数据库中提取一些数据 但是 从 RMySQL 加载 MySQL 驱动程序会阻止我从以下位置加载 PostgreSQL 驱动程序 PostgreSQL
  • Java/Hibernate - 异常:内部连接池已达到其最大大小,当前没有可用的连接

    我第一次在大学项目中使用 Hibernate 而且我还是个新手 我想我遵循了我的教授和我阅读的一些教程给出的所有指示 但我不断收到标题中的异常 Exception in thread main org hibernate Hibernate
  • SQL:将一个表中的所有记录插入到另一表中,而不指定列

    我想将备份表 foo bk 中的所有记录插入到 foot 表中 而不指定特定的列 如果我尝试这个查询 INSERT INTO foo SELECT FROM foo bk 我会收到错误 插入错误 列名称或提供的值的数量与表定义不匹配 是否可
  • 优化mysql中日期类型字段的查询

    我目前准备了以下查询 select sum amount as total from incomes where YEAR date 2019 and MONTH date 07 and incomes deleted at is null
  • 如何在 SQL 中存储目标(例如 RPG Quest)

    今天有人问我他们应该如何将任务目标存储在 SQL 数据库中 在这种情况下 请考虑角色扮演游戏 目标可能包括以下一些内容 发现 地点 杀死 n MOB 类型 获取 对象 的 n 个 实现 技能组 中的 技能 你在角色扮演游戏中获得的所有其他东

随机推荐