select *
from sample
join process
on sample.processid = process.id
where (processid) in (
select max(processid) as processid
from main_sample
group by serialnumber
)
ORDER BY sample.create_at desc;
models.py
class Sample(models.Model):
processid = models.IntegerField(default=0)
如何根据MyModel文本字段中某个短语的出现次数来过滤模型MyModel
我猜这不能用django orm完成,也许SQL查询可以帮上忙?
类似于:
MyModal.objects.extra(count="SQL query that finds occurence count of a certain phrase in certain model field")
一个完整的原始查询也很好。
让我们假设我有以下模型:
class Position(models.Model):
name = models.CharField()
class PositionStats(models.Model):
position = models.ForeignKey(Position)
averageYards = models.CharField()
averageCatches = models.CharField()
class PlayerStats(models.Model):
player = models.ForeignKey(Playe
我有一个包含PostgreSQL jsonb field的Django模型
class SocialUser(models.Model):
id = models.BigIntegerField(primary_key=True)
data = JSONField(blank=True, null=True, db_index=True)
数据字段包含username属性。
我通过以下方式对此属性进行了索引
CREATE INDEX ON users_socialuser ((data->>'username'));
当我使用id通过Django O
我习惯于通过ORM执行Django查询,但是所提供的代码使用所有SQL。
我需要能够得到在日期范围内定义的特定代理的所有事务的总量(之和为)。
cursor = connection.cursor()
cursor.execute(
"""
SELECT a.*, COUNT(t.*) as transactions
FROM agent a
JOIN transaction t ON t.agent_id = a.id
WHERE
我已经浏览了所有关于注释和聚合的Django源代码,仍然不能理解如何使用Django ORM实现以下查询。
此示例不是来自生产,而是教育,因此它可能与最佳实践不同。
我需要这个查询来输出颜色表中存在的每种颜色的房屋数量:
select
clr.id as colorId, count(*) as count
from colors as clr
inner join houses as c
on clr.id = cast(c.parameters ->> 'colorId' as int)
group by colorId;
数据模式定义如下:
CREA
我有以下模型结构:
class Master(models.Model):
name = models.CharField(max_length=50)
mounting_height = models.DecimalField(max_digits=10,decimal_places=2)
class MLog(models.Model):
date = models.DateField(db_index=True)
time = models.TimeField(db_index=True)
我有一个PostgreSQL UPDATE查询,它根据同一表中按另一个字段(rating)排序的每一行的ROW_NUMBER()更新表中每一行的字段(global_ranking)。此外,更新是分区的,因此每一行的排序仅相对于属于同一language的行。
简而言之,我正在更新中每个玩家的排名,根据他们当前的评级。
PostgreSQL查询如下所示:
UPDATE stats_userstats
SET
global_ranking = sub.row_number
FROM (
SELECT id, ROW_NUMBER() OVER (
PARTI
如何返回特定模型的所有对象实例,这些对象实例被不同模型的任何对象实例作为外键寻址?假设有一个模型项和一个与项有外键关系的模型ItemRequested。如何打印ItemRequested表/模型中作为外键提到的所有项?基本上,这就是我想在Django中执行的SQL查询: select * from backend_item where id in (select id from backend_itemrequested); 显然,我希望避免从Django ORM内部执行原始SQL命令
下面是Sql查询,它将提取过期的测试。
cursor.execute('''select
auth_user.username,
auth_user.email,
tests_test.title,
tests_seller.company_name,
tests_test.bid_date
from tests_test
LEFT JOIN tests_seller ON tests_seller.id = tests_test.seller_id
LEFT JOIN auth_user ON auth
假设我有三个模特:
from django.db import models
class X(models.Model):
y = models.ForeignKey(Y, on_delete=models.PROTECT)
z = models.ForeignKey(Z, on_delete=models.PROTECT)
a = models.DecimalField(...)
b = models.DecimalField(...)
...some fields...
class Y(models.Model):
...some
我是Django和数据库的新手,所以我试图了解一些性能方面的内容。具体来说,我想了解select_related()是否以我认为的方式工作。
下面是我的模型的简化版本:
class User(models.Model):
short = models.CharField(max_length=255)
name = models.CharField(max_length=255)
class Comment(models.Model):
title = models.CharField(max_length=255)
content = models.Text
在SQL后台,Django将filter(date__year=2011)转换为MySQL中的... WHERE date BETWEEN 2011-01-01 00:00:00 and 2011-12-31 23:59:59.99,执行时间为3秒。如果我手动删除时间部分并以... WHERE date BETWEEN 2011-01-01 and 2011-12-31身份运行,执行时间会减少1/100到30毫秒。
似乎有一个关于如何解释日期范围查询的基本问题。有什么办法可以解决这个问题吗?
如果我找不到使用Django ORM的方法,我将在模型中添加一个额外的year字段来存储年份,并在该整
我使用django ORM的exact()方法仅查询一组模型中选定的字段,以节省RAM。我不能使用defer()或only(),因为我使用的ORM管理器有一些限制(它不是默认的)。
下面的代码工作正常,没有错误:
q1 = Model.custom_manager.all().extra(select={'field1':'field1'})
# I only want one field from this model
但是,当我对q1查询集进行jsonify时,我得到了模型的每个字段。所以extra()肯定没有起作用,或者我做错了什么?
print Sa
假设我们在django中有一个模型,定义如下:
class Literal:
name = models.CharField(...)
...
名称字段不唯一,因此可以有重复的值。我需要完成以下任务:从模型中选择至少有一个name字段的重复值的所有行。
我知道如何使用纯SQL (可能不是最好的解决方案):
select * from literal where name IN (
select name from literal group by name having count((name)) > 1
);
那么,可以使用django ORM选择它吗?或者更好
我有一个带有oracle后端的django项目,我正在尝试将现有数据迁移到新服务器上。我通常使用Postgresql,对oracle的怪癖知之甚少。 运行django 2.2和python 3.8 我已经使用python manage.py dumpdata > allmydata.json导出了数据,没有任何问题。 当我使用python manage.py loaddata allmydata.json加载数据时,我得到以下错误。 ORA-24816: Expanded non LONG bind data supplied after actual LONG or LOB col
我正在尝试更新和修改一个string字段Django的ORM。执行此操作的等效SQL是:
UPDATE example_table SET string_field = REPLACE(string_field, 'old text', 'new text');
对于这个查询,我期望old text和old text more text分别被new text和new text more text替换,用于string_field列中的所有条目。
看起来很有希望,但不允许我修改字段的一部分,而只实现数字更改,而不是字符串替换。我还研究了如何使用来运行上面的SQL,
我有几个这样设置的Django模型:
class Group(models.model):
name = models.CharField(max_length=50, unique=True)
class Section(models.Model):
name = models.CharField(max_length=50, unique=True)
slug = models.SlugField(help_text='Auto generated')
groups = models.ManyToManyField(Group, blank
我试图使用F对象查询Django模型,但没有得到想要的结果。查询为:
Ticket.objects.exclude(lead__email=F('email')).count()
ORM将其转换为SQL,如下所示:
SELECT count(*) FROM "core_ticket" LEFT OUTER JOIN "core_lead" ON ("core_ticket"."lead_id" = "core_lead"."id") WHERE NOT ("core_lead
我想用ORM执行这个查询:
SELECT ARRAY_AGG("wcm_workflows_transition"."name") AS "names"
FROM "wcm_workflows_transition"
GROUP BY "wcm_workflows_transition"."workflow_id"
ORDER BY "wcm_workflows_transition"."name" ASC;
要做到这一点,我用
Transition.objects.