【发布时间】:2021-11-30 19:35:35
【问题描述】:
我有两张桌子,想加入他们.. 但如果没有 rawQueryset 和原始 SQL,我就无法做到这一点。
我如何没有外键连接两个模型? JOIN 的列不是唯一的,因此不能是 PK 和外键。
我想得到这样的 SQL
'SELECT * FROM genome AS A JOIN metadata AS B ON A.query_id = B.sample_id',
这是我使用的模型。
class Genome(models.Model):
query_id = models.CharField(max_length=100)
ref_id = models.CharField(max_length=30)
matching_hashes = models.CharField(max_length=30)
class Metadata(models.Model):
project_id = models.CharField(max_length=50) # Metagenome의 query id와 JOIN함
sample_id = models.CharField(max_length=50)
【问题讨论】:
-
每个基因组的
query_id是唯一的吗?或者sample_id是每个Metadata唯一的吗?换句话说,关系在哪个方向?一对多,还是多对一? -
query_id 和 sample_id 列在每个模型中都不是唯一的。这是多对多。
标签: python mysql django join orm