select
l.student_id,
SUM(l.sum_result)
FROM
(
SELECT
w.student_id,
w.subject_id,
r.total as sum_result
from
Student w
INNER JOIN (
SELECT
COUNT(r.id) as total,
让我们假设我有以下模型:
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
我有几个这样设置的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
考虑到以下Django模型(作为示例显示的很多模型,可能或多或少是嵌套的):
class ModelA(models.Model):
value = models.IntegerField()
class ModelB(models.Model):
modelA = models.ForeignKey(ModelA, on_delete=models.CASCADE)
value = models.IntegerField()
class ModelC(models.Model):
modelB = models.ForeignKey(ModelB, on_
我是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
我使用的是MySQL,我有两个模式,我必须在多个模式()上执行一个连接,正如您可能知道的那样,在Django ORM中不支持。
因此,对于此场景,这是最简化的SQL查询。
SELECT * FROM db1.a AS a
JOIN db2.b AS b
ON b.some_id = a.id
WHERE a.name = 'localhost'
DJANGO ORM
现在,如果我使用Django ORM,我将不得不这样做
a_obj = ModelA.objects.filter(name='localhost')
ModelB.objects.filter(
Django的ORM是否支持使用小于/大于运算符比较不同表中的列?
例如,我正在尝试比较Django查询中的两个对象字段,其SQL等效项为:
SELECT a.id
FROM mytable a
LEFT OUTER JOIN myothertable b ON b.id = a.other_id AND a.val < b.someval
显然,我不能使用普通的filter()表示法,因为RHS假设值是文字,而不是对象/属性名。例如:
MyTable.objects.filter(val__lt=other__someval)
我习惯于通过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 orm执行此查询以获取最近的平均数据
select product_name, AVG(price) as avg_price
from (
select procuct_name, price, deal_date
from deal_history
order by deal_date desc
) R
所以,我尝试了这个orm
DealHistory.objects.all().order_by('-deal_date')\
.values('pro
我需要在Django ORM中运行以下SQL查询。
select min(time) from serverName where server_id=4912;
我正在Django ORM中执行以下操作。
models.ServerName.objects.filter(server_id=ServerName.id).values(Min('time'))
我得到一个错误'Min' object has no attribute 'split'。是否有一种方法可以在过滤器上进行聚合。
我使用MS SQL SERVER作为Django数据库(使用pyodbc django模块)
有两个表,item和favorite item
如何将以下查询转换为Django ORM
SELECT item_id,
CASE WHEN
item_id IN (SELECT item_id FROM FavoriteItem WHERE user_id='test_user')
THEN 1
ELSE 0
END as is_favorite_item
FROM Item
在models.py中已经定义了两个模型
我是一个sql和数据库的新手,目前在django框架中开发网站。 在阅读django文档的过程中,我读到了使用Manager.raw()执行的原始sql查询,如下所示。 for p in Person.objects.raw('SELECT * FROM myapp_person'):
Manager.raw(raw_query, params=None, translations=None) 原始查询与普通sql查询有何不同&何时应该使用原始sql查询而不是Django ORM?
我有一个与实体类别相关的实体视频,我需要用Doctrine QueryBuilder运行这个SQL,用它我可以得到所有视频中最常用的类别(1000+):
SELECT c.*
FROM Video v
INNER JOIN video_category vc ON vc.video_id = v.id
INNER JOIN Category c ON vc.category_id = c.id
GROUP BY c.id
HAVING COUNT(v.id) > 1000
ORDER BY c.name ASC;
我的querybu
考虑这些模型
class SearchableText(models.Model):
searchable_text = models.TextField()
class SearchTerm(models.Model):
searchabletext = models.ForeignKey(SearchableText, on_delete=models.CASCADE)
term = models.CharField(max_length=100)
我想使用django orm编写与此sql语句等效的语句
Select SearchableText.* right
我是Django和它的ORM的新手。
Table User有很多用户。我需要对表中的活动用户和总用户进行分组,还需要根据他们在sql中使用Django ORM加入的年份对它们进行排序,这可能是这样的:
select count('users'),
count('users' where is_active is True as 'active_users') form user
order by 'created_at'
我需要使用Django ORM构建一个查询,这个查询在SQL中是这样的:
select * from A where id not in (select a_id from B where ... )
我试着使用这样的代码:
ids = B.objects.filter(...)
a_objects = A.object.exclude(id__in=Subquery(ids.values('a__id'))).all()
问题是,与嵌套的select Django不同,Django生成的查询类似于
select * from A where id not in (1, 2,
我有一个包含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
我已经搜索这么和谷歌两天了,还没有找到解决我的具体问题的办法。我有一个SQL查询,我正试图将它转换为Django ORM (如果可能的话)。在SQL中,查询如下所示:
SELECT *
FROM(
SELECT
max(effective_date) AS effective_date,
floorplan_id
FROM
floorplan_counts
GROUP BY
floorplan_id) s1
LEFT JOIN (
SELECT
floorplan_id AS fc_floorplan_id,
我有一个SQL查询,在用Django ORM编写时,它会返回一个错误。但是SQL查询在MySQL命令行客户端上工作得很好。有谁能解释一下在Django ORM的错误或工作情况吗?
SQL查询:-
SELECT CASE WHEN LENGTH(au.first_name) < 1 THEN au.username ELSE concat(au.first_name,' ',au.last_name)
END AS fullname FROM rewards_usercard ru RIGHT JOIN auth_user au ON ru.user_id = au.id;
使用这个SQL-语句,我可以从所有用户获取最新消息:
SELECT m1.*
FROM message AS m1
INNER JOIN user
AS u1
ON m1.sender_id = u1.user_id
INNER JOIN (
SELECT sender_id,
MAX(dateSent) MaxDate
FROM message
WHERE receiver_id = 4
GROUP BY sender_id
) AS m2
ON m1.sender_id = m2.sender_id
AND m1.datesen
可以为django ORM创建的join语句添加额外的条件吗?
我在SQL中需要的是
'SELECT "post"."id", COUNT("watchlist"."id") FROM "post"
LEFT OUTER JOIN "watchlist"
ON ("post"."id" = "watchlist"."post_id" AND "watchlist"."user_id"
以下是我的模型的一个子集:
class Case(models.Model):
... # primary key is named "id"
class Employee(models.Model):
... # primary key is named "id"
class Report(models.Model):
case = ForeignKey(Case, null=True)
employee = ForeignKey(Employee)
date = DateField()
给定一个特定的员工,我希望生成所