- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我们正在尝试查找 MySQL 数据库中的数据错误,但我想不出一种在不破坏数据库的情况下处理此问题的方法。
这是数据模型:
Table: EXAMPLE
+-----+------+-------+
| ID | PID | YEAR |
+-----+------+-------+
| | | |
| 001 | A | 2014 |
| | | |
| 002 | B | 2014 |
| | | |
| 003 | A | 2014 |
| | | |
| 004 | A | 2009 |
| | | |
| 005 | B | 2014 |
| | | |
| 006 | C | 2014 |
| | | |
| 007 | C | 2014 |
+-----+------+-------+
目标是返回 PID 和 YEAR 彼此不同步的所有行。如果有三行 PID 匹配但其中任何一行的 YEAR 错误,我们需要返回所有行。
在上面的示例数据中,将返回以下内容:
+-----+------+-------+
| ID | PID | YEAR |
+-----+------+-------+
| | | |
| 001 | A | 2014 |
| | | |
| 003 | A | 2014 |
| | | |
| 004 | A | 2009 |
+-----+------+-------+
到目前为止,我处理的查询如下所示:
SELECT EXAMPLE.ID, EXAMPLE.PID, EXAMPLE.YEAR
FROM EXAMPLE
INNER JOIN
(SELECT PID FROM EXAMPLE where PID HAVING COUNT(PID) > 1 GROUP BY PID) tmpTbl
ON EXAMPLE.PID = tmpTbl.PID
问题是在我的真实数据集中,子查询返回数据库中 255k 行中的 26k。预期结果不是“这是你的结果”,而是更多“观看我的处理动画”。
我走在正确的轨道上吗?有没有我忽略的更有效的方法?
非常感谢!
最佳答案
您可以使用 exists
子查询代替:
select e.*
from example e
where exists (select 1
from example e2
where e2.pid = e.pid and
e2.year <> e.year
);
为了让它运行得更快,在 example(pid, year)
上创建一个索引。
如果您只想要所有年份并且可以将它们排成一行,那么这可能就足够了:
SELECT PID, group_concat(year) as years
FROM EXAMPLE
where PID
GROUP BY PID
HAVING COUNT(DISTINCT year) > 1 ;
关于mysql - 返回所有 colA 与 colB 不重复的 MySQL 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21736159/
我对以下内容有点困惑,请问您可以给我一些指导吗? 我创建了 2 个临时表“compare1”和“compare2”,我想列出表之间常见的单词。 但是,在每个临时表中,我都有一个数字字段“chunkId
我正在使用 CodeIgniter 事件记录,但我缺乏在 MySQL 中连接多个表列的知识。 我基本上想做的是输出 ci_categories 表中的所有行,但我不希望将 ci_categories.
我有 var name = 'Name',如果 ColA 已填充,我需要用该名称填充 ColB,如果从 ColA 中删除文本,则需要清除 ColB。如果它能在“onEdit”上运行那就太好了!非常感谢
我尝试查找我需要做的事情,但我对 Excel 不是很好,所以我不确定如何搜索我正在尝试做的事情......在这里...... 我有一个客户发给我的文件,我需要将其导出为 .csv 文件以便直接邮寄。她
寻求在 sequelize 中复制以下 mssql 操作的帮助。我们有一个包含 valid_from 和 valid_to 列的表,我需要获取今天的当前日期,并且只返回基于该日期的记录。 我希望在 s
我们正在尝试查找 MySQL 数据库中的数据错误,但我想不出一种在不破坏数据库的情况下处理此问题的方法。 这是数据模型: Table: EXAMPLE +-----+------+-------+ |
我在 ColC 中有一个词干列表,我想通过 ColA 进行搜索以查看: (1) 单元格是否包含子字符串之一? (2) 它包含哪个子串? 我可以通过多种方式回答第一个问题,包括: =INDEX(C2:C
我想弄清楚如何查询一个表(该表实际上是一个结果集,所以它将是一个子查询),按 ColA=ColB 对其进行分组(见下文),并一步创建一个计算字段。 所以,如果我的测试数据看起来像 可乐 可乐 可乐 1
我找到了 this question这非常相似,但我仍然遇到一些麻烦。 所以我从名为 Scores 的表开始 id | player | time | scoreA | scoreB | ~~~|~~
我目前有一个列表和 1 个带有 2 个列名称的表 列表=[a,b,c] 表A有colA和colB。 我想根据 colA 中的值设置 colB 中的值。 如果列表位于 A 列中,则将 B 列设置为 1。
编辑问题 我有下面的示例表: colA colB ABC IAH DEADFSLJ CI CI CI AFDSJLK
我必须将这两个 mySQL 查询合并为一个。我复制了一个解决方案并将其用于连接表。我正在查询一个包含两列(标记为“to_”和“from_”)的连接表。 'to_' 和 'from_' 都保存同一张表的
我有几张表:products , transactions , styles 。 SQL 查询连接 products和styles到一张包含我技术上需要的所有信息的表中。但是我需要按 timestam
如何在 Rails4/ActiveRecord 中通过多组值查找多条记录?我想实现这样的目标: SELECT * FROM some_table WHERE (A, B, C) IN ((1, 2,
为一篇冗长的帖子道歉,但我需要发布一些代码来说明问题。 灵感来自问题 * What is the reason not to use select ? ,我决定指出我前段时间注意到的 select *
我是一名优秀的程序员,十分优秀!