有人可以帮助我理解为什么以下不起作用?
SELECT name FROM (SELECT name FROM agentinformation)
Run Code Online (Sandbox Code Playgroud)
我想我对SQL的理解是错误的,因为我会认为这会返回相同的东西
SELECT name FROM agentinformation
Run Code Online (Sandbox Code Playgroud)
内部select语句是否创建了外部SELECT语句然后查询的结果集?
是否有(大致)SQL或类XQuery语言来查询JSON?
我正在考虑非常小的数据集,这些数据集可以很好地映射到JSON,很容易回答诸如"X的所有值,其中Y> 3"的查询,或者执行通常的SUM/COUNT类型操作.
作为完全构成的例子,这样的事情:
[{"x": 2, "y": 0}}, {"x": 3, "y": 1}, {"x": 4, "y": 1}]
SUM(X) WHERE Y > 0 (would equate to 7)
LIST(X) WHERE Y > 0 (would equate to [3,4])
Run Code Online (Sandbox Code Playgroud)
我认为这可以在客户端和服务器端工作,结果转换为适当的特定于语言的数据结构(或者可能保存为JSON)
一个快速的谷歌搜索表明人们已经考虑过它并实现了一些东西(JAQL),但似乎还没有出现标准用法或一组库.虽然每个功能都可以自行实现,但如果有人已经做好了,我不想重新发明轮子.
有什么建议?
编辑:这可能确实是一个坏主意,或者JSON可能过于通用我正在思考的格式..想要查询语言而不是直接根据需要直接执行求和/等功能的原因是我希望构建查询动态地基于用户输入.有点像"我们不需要SQL,我们只能编写我们需要的功能"的论点.最终要么失控,要么在你进一步推动时最终编写自己的SQL版本.(好吧,我知道这是一个有点愚蠢的论点,但你明白了......)
如何查询其中有苹果的冰沙?(下面是一个包含3个文件的集合)
_id => 1
name => 'best smoothie'
ingredients => Array
(
[0] => apple
[1] => raspberry
[2] => orange
[3] => banana
)
_id => 2
name => 'summer smoothie'
ingredients => Array
(
[0] => lemon
[1] => mint
)
_id => 3
name => 'yogurt smoothie'
ingredients => Array
(
[0] => apple
[1] => blueberry
)
Run Code Online (Sandbox Code Playgroud) 我想加载根实体并急切加载它的所有子集合和聚合成员.
一直试图SetFetchMode
在FluentNHibernate中使用它,但我在其中一个子集合中得到重复,因为我有3个级别的深度.DistinctRootEntityResultTransformer
遗憾的是,只删除了根重复.
return Session.CreateInvoiceBaseCriteria(query, archived)
.AddOrder(new Order(query.Order, query.OrderType == OrderType.ASC))
.SetFetchMode("States", FetchMode.Eager)
.SetFetchMode("Attestations", FetchMode.Eager)
.SetFetchMode("AttestationRequests", FetchMode.Eager)
.SetFetchMode("AttestationRequests.Reminders", FetchMode.Eager)
.SetResultTransformer(new DistinctRootEntityResultTransformer())
.List<Invoice>();
Run Code Online (Sandbox Code Playgroud)
我可以使用多个查询或类似的东西来存档吗?
此外,这种方法不会导致数据库中不必要的巨大结果集吗?
有什么建议?
django分页有一些代码示例,我曾经使用过一段时间.我可能错了,但在查看代码时,它看起来好像浪费了大量的内存.我一直在寻找更好的解决方案,这里是代码:
# in views.py
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
...
...
def someView():
models = Model.objects.order_by('-timestamp')
paginator = Paginator(models, 7)
pageNumber = request.GET.get('page')
try:
paginatedPage = paginator.page(pageNumber)
except PageNotAnInteger:
pageNumber = 1
except EmptyPage:
pageNumber = paginator.num_pages
models = paginator.page(pageNumber)
return render_to_resp ( ..... models ....)
Run Code Online (Sandbox Code Playgroud)
我不确定这段代码的细节,但从它的外观来看,第一行代码从数据库中检索每一个模型并将其推入.然后,它被传递到分页程序这豆腐块它基于该页面的用户是从一个HTML的GET.分页符是否以某种方式使这个可以接受,或者这完全是内存效率低下的?如果效率低下,怎么改进?
另外,一个相关的主题.如果有人这样做:
Model.objects.all()[:40]
Run Code Online (Sandbox Code Playgroud)
这段代码是否意味着所有模型都被推入内存,我们将其中的40个拼凑出来?这很糟糕.或者它是否意味着我们只查询并将40个对象推入内存期?
谢谢您的帮助!
我正在我的网站上构建一个笔记系统,我已经到了用户可以使用PHP将笔记发布到MySQL数据库的阶段,然后PHP将它们打印在页面上.但是,当它们打印/回显时,最旧的一个首先出现,但我想要最近的第一个.我也希望它们限制在10,所以页面上只显示10个.这是我的PHP代码,非常感谢您的帮助:
// initialize some variables
$notedisplaylist = "";
$myObject = "";
$result = mysql_query("SELECT * FROM notes WHERE note_author_id='$u_id' ORDER BY date_time");
while($row = mysql_fetch_array($result)){
$note_title = $row["note_title"];
$note_body = $row["note_body"];
$date = $row["date_time"];
$notedisplaylist .= '<h2>' . $note_title . '</h2><br /><p>' . $note_body . '</p><hr /><p>Noted: ' . $date . '</p><hr /><br />';
}
Run Code Online (Sandbox Code Playgroud) 我只想通过其ID 检索单个文档的数据。我的示例数据方法:
TESTID1 {
'name': 'example',
'data': 'sample data',
}
Run Code Online (Sandbox Code Playgroud)
是这样的:
Firestore.instance.document('TESTID1').get() => then(function(document) {
print(document('name'));
}
Run Code Online (Sandbox Code Playgroud)
但这似乎不是正确的语法。
我找不到有关在flutter(飞镖)中查询firestore的任何详细文档,因为firebase文档仅解决了本机WEB,iOS,Android等问题,而没有解决Flutter。cloud_firestore的文档也太短了。只有一个示例显示了如何将多个文档查询到流中,这不是我想要的。
有关缺少文档的相关问题:https : //github.com/flutter/flutter/issues/14324
从单个文档中获取数据并不难。
更新:
Firestore.instance.collection('COLLECTION').document('ID')
.get().then((DocumentSnapshot) =>
print(DocumentSnapshot.data['key'].toString());
);
Run Code Online (Sandbox Code Playgroud)
不执行。
我很难优化我的SQLAlchemy查询.我的SQL知识非常基础,我无法从SQLAlchemy文档中获取所需的东西.
假设以下非常基本的一对多关系:
class Parent(Base):
__tablename__ = "parents"
id = Column(Integer, primary_key = True)
children = relationship("Child", backref = "parent")
class Child(Base):
__tablename__ = "children"
id = Column(Integer, primary_key = True)
parent_id = Column(Integer, ForeignKey("parents.id"))
naughty = Column(Boolean)
Run Code Online (Sandbox Code Playgroud)
我怎么能:
(Parent, count_of_naughty_children, count_of_all_children)
每个父母的元组?花了大量时间谷歌搜索后,我发现如何分别查询这些值:
# The following returns tuples of (Parent, count_of_all_children):
session.query(Parent, func.count(Child.id)).outerjoin(Child, Parent.children).\
group_by(Parent.id)
# The following returns tuples of (Parent, count_of_naughty_children):
al = aliased(Children, session.query(Children).filter_by(naughty = True).\
subquery())
session.query(Parent, func.count(al.id)).outerjoin(al, Parent.children).\
group_by(Parent.id)
Run Code Online (Sandbox Code Playgroud)
我尝试以不同的方式将它们组合在一起,但却无法得到我想要的东西.
我猜这个查询将基于前一个查询,按淘气/全部比率过滤.
任何帮助表示赞赏.
编辑: …
我正在使用Elasticsearch v2.3.0.假设我有一个带映射的索引:
{
"mappings": {
"post": {
"dynamic": false,
"_source": {
"enabled": true
},
"properties": {
"text": {
"norms": {
"enabled": false
},
"fielddata": {
"format": "disabled"
},
"analyzer": "text_analyzer",
"type": "string"
},
"subfield": {
"properties": {
"subsubfield": {
"properties": {
"subtext": {
"index": "no",
"analyzer": "text_analyzer",
"type": "string",
"copy_to": "text"
}
}
}
}
}
},
"_all": {
"enabled": false
}
}
}
Run Code Online (Sandbox Code Playgroud)
所以,从文本subfield.subsubfield.subtext
复制到文本field
因copy_to
.如果你查询信息,然后从纯数据text
显示在text
现场,因为_source
不被修改.如果要获取所有文本,则应聚合客户端上的所有字段.如果存在许多子场,则这可能是不方便的.
是否有一个神奇的查询,它允许获取text
所有文本复制到它的字段?
我有一个集合,其中一些对象具有键foo
.我现在尝试查询确实具有此键但不具有特定值的所有对象bar
.为此,我使用以下查询:
collection.find({'foo': {'$exists': True}, 'foo': {'$ne': 'bar'}})
Run Code Online (Sandbox Code Playgroud)
我认为这两个标准都是通过逻辑AND连接的.但是,我也得到了没有特征键的对象foo
.事实上,当我使用查询时,我得到相同的结果
collection.find({'foo': {'$ne': 'bar'}})
Run Code Online (Sandbox Code Playgroud)
在其他汉斯,如果我使用
collection.find({'foo': {'$exists': True}})
Run Code Online (Sandbox Code Playgroud)
我只是正确地获取了foo
所有对象,所以其中一些具有价值bar
.
如何制定查询以实现初始结果?是否有一种测试多个标准的顺序?我是否明确指定了两个标准的逻辑AND?
querying ×10
python ×3
mongodb ×2
sql ×2
dart ×1
django ×1
firebase ×1
flutter ×1
json ×1
limit ×1
mysql ×1
nested ×1
nhibernate ×1
nosql ×1
odm ×1
orm ×1
pagination ×1
php ×1
pymongo ×1
sql-order-by ×1
sql-server ×1
sqlalchemy ×1
subquery ×1