【发布时间】:2015-10-15 06:05:44
【问题描述】:
我继承了一个数据库,其中包含一个查找表以查找与给定专利相关的其他专利。
看起来像
╔════╦═══════════╦════════════╗
║ id ║ patent_id ║ related_id ║
╠════╬═══════════╬════════════╣
║ 1 ║ 1 ║ 2 ║
║ 2 ║ 1 ║ 3 ║
║ 3 ║ 2 ║ 1 ║
║ 4 ║ 2 ║ 3 ║
║ 5 ║ 3 ║ 2 ║
╚════╩═══════════╩════════════╝
我想过滤掉互惠关系。 1->2 和 2->1 对于我的目的是相同的,所以我只想要 1->2。
我不需要在表格中进行编辑,我只需要一个查询来返回唯一关系列表,虽然我确信这很简单,但我一直在用头敲键盘太长。
【问题讨论】:
-
啊,是的,谢谢@TimBiegeleisen。我搜索但不知何故错过了那个。明天我会试试这个答案,看看它是否有效。
-
使用这个
SELECT DISTINCT LEAST(patent_id, related_id), GREATEST(patent_id, related_id) FROM mytable -
这最终成为我所需要的最简单的答案。
标签: mysql many-to-many unique