我有一个declare @SDate datetime='2009-07-11'
declare @EDate datetime='2012-12-30'
declare @Sid int
declare @Eid int
--select * from dbo.SomeDateTable
--where StartDate>=@SDate and StartDate<=@EDate
Above query give Table Scan
select @Sid=min(id) ,@Eid=max(id) from dbo.SomeDateTable
where StartDate>=@SDate and StartDate<=@EDate
模型,我使用django-mptt拥有子类别(以及子子类别,等等)。我也有分配给类别的产品。
我想在数据库中查询具有至少一个子类别和至少一种产品的所有根类别。例如,考虑以下数据结构:
select @Sid,@Eid
select id,StartDate,vdata from dbo.SomeDateTable
where id>=@Sid and id<=@Eid
在这种情况下,我希望查询仅返回“垃圾食品”类别,因为它是唯一符合所有三个条件(根类别,至少具有一个子类别,至少具有一种产品)的类别。
我浏览了django-mptt文档,但没有找到一种方法。也许我忽略了它。有什么建议吗?
答案 0 :(得分:1)
您可以在子类别和产品的“类别”的多对一字段中进行过滤。 所以也许像这样:
<?php
echo json_encode(array('number' => '23589'), JSON_NUMERIC_CHECK);
?>
或
Category.objects.filter(
parent=None, # must be root category
children__in=Category.objects.filter(level=1), # must have at least one sub-category
products__in=Product.objects.all() # must have at least one product
).distinct()