我使用 (修改的预顺序树遍历)模型将分层数据存储在MySQL表中。(MPTT模型:另一种描述是嵌套集模型。)我的问题是:有人想出了一种聪明的方法来对树上的查询结果进行排序吗?我可以按标签排序,但是结果集将按标签排序,而不考虑节点在树中的位置或深度。
下面是一个用于检索任意节点树的查询示例,每个节点的深度如下:
SELECT node.id, (COUNT(parent.id) - (sub_tree.depth + 1)) AS depth
FROM person AS node,
person AS parent,
person AS sub_parent, (
SELECT nod
我有一个菜单,它是多个菜单项的父菜单,每个子菜单都有自己的子菜单。这种模式一直延续到5-6个垂直层次.我不想编写包含nth级子查询的查询,如下所示:
select id from jos_menu where parent in(select id from jos_menu where parent in(select id from jos_menu where parent=385 and published=1))
而且,我不想为此写脚本。在MySQL中应该有一些东西来获取这样的结果。
有人能指导我怎样才能以最好的方式实现我的结果吗?
在RavenDb中,我必须存储分层数据,并且需要递归地查询它。演出是我们最关心的问题。
我所拥有的类似于以下内容:
public class Category
{
public int Id { get; set; }
public string Name { get; set; }
public Category Parent { get; set; }
}
在这种情况下,如果我将父类别存储在文档本身中,我将很难管理数据,因为我将在整个地方复制这些类别。
因此,为了方便起见,我可以将其存储如下:
public class Category
{
public i
例如,我的表如下所示:
| ID (This is primary key) | parent (this refers to other rows in this table) |
|--------------------------|--------------------------------------------------|
| 1 | NULL |
| 2 | 3
从开始,我有两个计算成员,定义如下:
MEMBER [Asset].[Class].[Fixed Income Derivatives]
AS
AGGREGATE(
{
[Asset].[Class].&[Fixed Income],
[Asset].[Sub Class].&[Derivatives]
},
[Measures].CurrentMember
)
MEMBER [Asset].[Class].[Fixed Income Non-derivatives]
AS
AGGREGATE(
{
[As
是否可以使用SQL来查找所有具有最常见类别的品牌?
例如,品牌"Dove“可以有肥皂、护肤品、洗发水等类别,它是找出所有类别匹配最多的品牌,换句话说,是最相似的品牌。
这可以使用Ruby或PHP以编程方式完成:只需获取一个品牌,遍历所有其他品牌,看看有多少匹配的类别,并按其排序。但是如果有2000个品牌,那么每个品牌需要2000个查询。(除非我们预先缓存了所有2000个查询结果,因此对于所有2000个品牌,我们将重用这些结果)
可以通过SQL / MySQL通过一次查询来完成吗?
比方说,这个表有:
entities
--------
id
type = brand or categ
我正在开发一个基于mysql的系统来管理来自食品加工的数据。在这一点上,我遇到了以下具体问题:
我有一个表格A,里面有一些项目:
Farmer Quantity
Farmer A 1000 kg
Farmer B 500 kg
然后我有一个表B,它是来自表A的数据的m:n聚合:
Batch Quantity Quality etc.
LI1 200 kg ....
LI2 12000 kg ....
为了表示m:n关系,我有一个表AB,它将两者连接起来:
FK_Farmer
我试图了解MySQL递归查询是如何工作的,并以我想要的方式获取数据。
现在,我有以下SQL
SELECT `Library`.*, l2.*, l3.*
FROM `Library`
LEFT JOIN `Library` as `l2` on `l2`.`subsectionOf`=`Library`.`iD`
LEFT JOIN `Library` as `l3` on `l3`.`subsectionOf`=`l2`.`iD`
WHERE `Library`.`iD` = 0x02
ORDER BY `Library`.`subsectionOrder`, `l2`.`subsectio
我有一个包含简单sql查询的页面:
访问者在940页,所以我需要在这个页面上找到要展示的产品:
SELECT *
FROM items
WHERE stock = 1 AND hide = 0
ORDER BY id DESC
LIMIT 36
OFFSET 33804
此查询采用15463.242 ms。
我还需要显示所有库存产品的制造商,大小和存储信息的过滤器:
SELECT MANUFACTURER, sizes, store
FROM items
WHERE stock = 1 AND hide = 0
这需要17996.684 ms。
我不明白为什么要花这么多时间。
表
我经常使用下面的查询:
SELECT * FROM table WHERE Timestamp > [SomeTime] AND Timestamp < [SomeOtherTime] and publish = 1 and type = 2 order by Timestamp
我想优化这个查询,我正在考虑把timestamp作为聚集索引的主键的一部分,我认为如果timestamp是主键的一部分,那么插入到表中的数据将按timestamp field.Also顺序写入磁盘。我认为这会大大改善我的查询,但不确定这是否会有帮助。
table has 3-4 million+ rows
我正在使用SQL Server2008 R2。我想查询一个数据库并检索所有用户定义的表(非常简单,SELECT Name FROM sys.tables),但是我希望它是有序的,这样如果insert语句按这个顺序执行,它们就不会遇到外键约束。
换句话说,我想要按依赖关系排序的表列表,以便最高级别的表(即没有依赖关系的表)在依赖它们的表之前。
查询此信息的最有效方法是什么?
谢谢你的帮助。
我有一个表,其中列出了传销团队成员的层次结构。我正在尝试弄清楚如何在MySQL中最有效地查询表,这样我就可以用PHP语言输出结果。
我在研究中了解到,嵌套查询或PHP循环中的嵌套查询并不理想,但是当我查看MySQL连接时,我看不到如何正确地访问信息。
表值(表名为MLM):
ID Upline FName
1 1 Joe (he is at the top of the hierarchy)
2 1 Jane (Jane is directly under Joe)
3 2 Jack
4 3 Jill
找
我有一个treeList,加载了来自SQL DB的数据。sql for tree中的logigs为standart: ID、ParentID等字段。现在我想在这个树中实现复制-粘贴。当我单击树,并在具有某种树结构的某个节点上选择“复制”按钮时,我选择DataTable所有关于该对象及其所有子项、子项等的信息。树可以有多个级别。现在,我想将这个选中的节点(包含所有数据:子节点、子节点等)“粘贴”到另一个树节点上。如何实现它并将所有带有关系数据插入到SQL中,就像在复制的节点中一样?我想这里我需要一些递归方法..?也许有人可以分享一些经验和例子。谢谢。
我有下面的递归函数,它可以工作...直到某一时刻。然后,一旦查询超过大约100次,脚本就会要求更多内存,当我添加更多内存时,脚本通常就会死掉(我最终在浏览器上看到一个白屏)。
public function returnPArray($parent=0,$depth=0,$orderBy = 'showOrder ASC'){
$query = mysql_query("SELECT *, UNIX_TIMESTAMP(lastDate) AS whenTime
FROM these_pages
WHERE parent
假设我有一个按层次结构构造的对象表:
A
|--B
|--C
| +--D
+--E
它们存储在“父-子”表中,因此:
parent child
A B
A C
C D
A E
如何对此进行查询以获得上面定义的结构?我想我需要一些能产生这样信息的东西:
object full_path
A NULL
B A
C A
D A.C
E A
我不知道如何处理嵌套在一个以上深度的对象。感觉上我可能需要在表上进行迭代(不知道这在SQL中是否可行),或者以其他方式使用以前从未遇到过的某种查询。
下面的查询显示,与connect by和left join结合使用的select *不会返回所有列,而只返回这些条件中使用的列。这个行为对我很有用,考虑到select *不应该在release中使用,它对请求数据很有用。
with t1 as (
select 1 id, 0 parent, 'ROOT' name from dual
union all
select 2 id, 1 parent, 'CHILD-1' name from dual
union all
select 3 id, 1 parent, 'CHILD-2
我从sql地理开始,我进行了一个查询,以获取在多边形中发送的所有存储点,它得到了正确的结果,但执行起来需要很长时间。如何才能更好地执行此查询?
PS:我在5.5.62上使用mysql。
我的问题是:
SELECT id, name
FROM geolocations
WHERE id in ( SELECT geo_id FROM users) AND
CONTAINS(GEOMFROMTEXT('POLYGON((-22.892726399999997 -47.05525290000003,-22.891496748403178 -47.05564986693423,-22.89