在我的工作中,我们的集合管理数据库(CMS)被导出到一个MySQL转储。由于CMS的结构,表中的多值字段在转储中被分割成单独的表,例如样本被分割成样本(单值字段仅从样本表)和specimens_mv (从样本表中分离出多值字段)。在我们的数据库中,您可以通过相关的材料字段链接共享数据的样本(例如,两个样本的收集器编号是相同的)。你必须进入每一个记录来进行两种组合(即在记录A中插入记录B和在记录B中插入记录A)。我在寻找不恰当地联系在一起的标本记录:
SELECT
sp.specimen_num,
sp.barcode AS barcode_1,
sp.coll_name AS collector_1,
sp.coll_num AS coll_num_1,
mv.nomen_type_kind as type_2,
sp2.specimen_num AS specimen_num_2,
sp2.barcode AS barcode_2,
sp2.COLL_NAME AS coll_name_2,
sp2.COLL_NUM AS coll_num_2,
FROM
specimens_mv AS mv
JOIN
specimens AS sp ON mv.specimen_num = sp.specimen_num
JOIN
specimens AS sp2 ON mv.ASSOCIATED_MAT_SPECIMEN_NUM = sp2.specimen_num
where sp2.coll_num != sp.coll_num;问题是,这些成对的组合是相互作用的,通常有两个以上的样本相互联系在一起。
| specimen_num 1 | specimen_num 2 |
|----------------|----------------|
| 87969 | 87968 |
| 87969 | 87970 |
| 87970 | 87968 |
| 87970 | 87969 |有什么建议可以消除两两重复吗?
发布于 2020-09-30 10:15:54
您只需更改有关联接上的不等式条件即可。也就是说,改变这一点:
where sp2.coll_num != sp.coll_num;至:
where sp2.coll_num > sp.coll_num;https://stackoverflow.com/questions/64135351
复制相似问题