我有以下表格(仅列出所需的属性)
- 药物(身份证,姓名),
- 通用(ID,名称),
- med_gen(med_id 参考药物(id),gen_id 参考通用(id),效力)
样本数据
药物
- (1,“藏红花”)
- (2,“斯坦洛”)
- (3, 'NT Kuf')
通用的
- (1,“六氯定”)
- (2, '苯甲酸甲酯')
med_gen
- (1, 1, '100mg')
- (1, 2, '50ml')
- (2, 1, '100mg')
- (2, 2, '60ml')
- (3, 1, '100mg')
- (3, 2, '50ml')
我想要与给定药物等效的所有药物。这些药物彼此等效,具有相同的通用性和相同的效力。在上面的示例数据中,所有三个都具有相同的仿制药,但只有 1 和三个对相应的仿制药也具有相同的效力。所以 1 和 3 是等效的药物。
我想找出给定药物 ID 的等效药物。
注意:一种药物可能有任意数量的仿制药。医学表有大约 102000 条记录,通用表大约 2200 条记录和效力表大约 200000 条记录。所以性能是一个关键点。
注 2:MySQL 中使用的数据库。