使用Django进行高级数据库查询

时间:2014-01-12 22:24:03

标签: python database django sqlite

假设我有一个名为“A”的数据库,这个数据库只有两个记录“name:Jhon”和“name:Sara”,我还有数据库“B”,其名称为“Jhon”和“ Sara“除了其他名称之外,我如何只搜索Jhon和Sara的名字?

上下文:数据库A有特定的值,数据库B是用户生成的,我想要完成的是当用户生成的B数据库记录与A的记录匹配时向用户添加一些点,就像一个游戏什么的。

我该如何做到这一点?

2 个答案:

答案 0 :(得分:0)

数据库具有包含属性的表。 在这种情况下,您有2个表A和B. 每个表都有“name”属性。

我不明白你要做什么,但是如果你想在Django中查询一个带有名字的表,

person = A.objects.get(name=myName)

所以如果你想知道Jhon是否在表A中,

try:
    person = A.objects.get(name="Jhon")
    #Jhon exists.
except ObjectDoesNotExist:
    #Jhon does not exists.

答案 1 :(得分:0)

通常,django模型映射到单个数据库表。 模型的每个属性代表一个数据库字段。

以下示例retrieve a list的名称来自第一个Model(名为“A”),然后searches变为“B”,表示任何值为name的记录列出的属性in

names_to_search = A.objects.all().values_list('name', flat=True)
people = B.objects.filter(name__in=names_to_search)

我假设A和B都有一个名为name的字段。