【发布时间】:2016-03-29 01:29:51
【问题描述】:
我很难找到解决这个问题的简单方法。
你可以假设UNIQUE KEY (A, B, C, D, E)。
我正在尝试SELECT 上表中的所有行,这样对于每个唯一的C, D, E 组,我想要A, B,这样A + B <= 的所有其他A + B 组合对于特定的@ 组987654331@.
因此,对上述数据执行SELECT 应该会产生(在平局的情况下,选择第一个):
如果我是GROUP BY C, D, E,那么A, B 列是任意选择的(技术上首先A, B 是数据库内部遇到的)。
如果这是关系代数,我会将关系与其自身交叉连接,选择“两个”关系中C, D, E 相等的位置以及关系副本中A + B 的位置大于另一个副本的A + B,然后从原始关系中减去结果。
我认为,在MySQL 中有一种更简单的方法来执行此操作。该表可能有数千组C, D, E,每组包含5到10个A, B。我不相信CROSS JOIN 会非常有效。
【问题讨论】:
标签: mysql sql database select database-design