我正在选择两个id列但指定了错误:
org.hibernate.QueryException: **query specified join fetching, but the owner of the fetched association was not present in the select list**
[FromElement{explicit,not a collection join,fetch join,fetch non-lazy properties,classAlias=r,role=null,tableName=REVISIONS,tableAlias=revision1_,origin=ENTITY_CHANGED_IN_REVISION entitychan0_,columns={entitychan0_.REV_ID ,className=ru.csbi.registry.domain.envers.Revision}}] [ select ec.id as entityChangeId, r.id as revisionId from ru.csbi.registry.domain.envers.EntityChange as ec inner join fetch ec.revision as r where ec.groupEntityId = :groupEntityId and ec.groupName = :groupName and r.timestamp < :entityDateFrom and r.timestamp > :entityDateTo and ( ec.revisionType in (0, 5, 1, 4, 2 ) and not ( ec.otherGroupEntityModified = false and …Run Code Online (Sandbox Code Playgroud) 在此先感谢,我似乎无法得到它!
我有两张桌子
Ordered_Item
ID | Item_Name 1 | Pizza 2 | Stromboli
Ordered_Options
Ordered_Item_ID | Option_Number | Value
1 43 Pepperoni
1 44 Extra Cheese
2 44 Extra Cheese
我想要输出的是一个mysql查询就是这个效果
产量
ID | Item_Name | Option_1 | Option_2 1 Pizza Pepperoni Extra Cheese 2 Stromboli NULL Extra Cheese
我尝试了很多以语法错误结尾的选项,我尝试过group_concat,但那并不是我想要的.我在下面有一个粗略的例子,我认为可能是一个开始.我每次都需要选项以相同的顺序.在收集信息的程序中,没有办法可靠地确保会发生这种情况.是否可以根据选项号将它们连接起来.此外,我知道我将永远不会有超过5个选项,所以静态解决方案将起作用
Select Ordered_Items.ID,
Ordered_Items.Item_Name,
FROM Ordered_Items
JOIN (SELECT Ordered_Options.Value FROM Ordered_Options Where Option_Number = 43) as Option_1
ON Ordered_Options.Ordered_Item_ID = Ordered_Item.ID
JOIN (SELECT Ordered_Options.Value FROM Ordered_Options Where Option_Number = 44) as Option_2 …Run Code Online (Sandbox Code Playgroud) users
{
"_id":"12345",
"admin":1
},
{
"_id":"123456789",
"admin":0
}
posts
{
"content":"Some content",
"owner_id":"12345",
"via":"facebook"
},
{
"content":"Some other content",
"owner_id":"123456789",
"via":"facebook"
}
Run Code Online (Sandbox Code Playgroud)
这是我的mongodb的样本.我想获得所有帖子的"via"属性等于"facebook"并由admin发布("admin":1).我无法弄清楚如何获取此查询.由于mongodb不是关系数据库,我无法进行连接操作.可能是什么解决方案?
哪种方法更快?
阵列加入:
var str_to_split = "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z";
var myarray = str_to_split.split(",");
var output=myarray.join("");
Run Code Online (Sandbox Code Playgroud)
String Concat:
var str_to_split = "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z";
var myarray = str_to_split.split(",");
var output = "";
for (var i = 0, len = myarray.length; i<len; i++){
output += myarray[i];
}
Run Code Online (Sandbox Code Playgroud) 我有2个表,我想在2个表连接在一起之前过滤1个表.
客户表:
????????????????????
? Customer ? State ?
????????????????????
? A ? S ?
? B ? V ?
? C ? L ?
????????????????????
Run Code Online (Sandbox Code Playgroud)
参赛表:
???????????????????????????????
? Customer ? Entry ? Category ?
???????????????????????????????
? A ? 5575 ? D ?
? A ? 6532 ? C ?
? A ? 3215 ? D ?
? A ? 5645 ? M ?
? B ? 3331 ? A ?
? B ? 4445 ? D ?
??????????????????????????????? …Run Code Online (Sandbox Code Playgroud) 我正在寻找一个hibernate标准来获得以下内容:
Dokument.class映射到Role roleId
Role.class有一个ContactPerson contactId
Contact.class FirstName LastName
我想在Contact类中搜索First或LastName,并检索连接的Dokuments列表.
我尝试过这样的事情:
session.createCriteria(Dokument.class)
.setFetchMode("role",FetchMode.JOIN)
.setFetchMode("contact",FetchMode.JOIN)
.add(Restrictions.eq("LastName","Test")).list();
Run Code Online (Sandbox Code Playgroud)
我得到一个错误无法解决类"Dokument"的属性"LastName"
有人可以解释为什么连接搜索Dokument而不是所有连接表?在此先感谢您的帮助!
我有3张桌子:
Persons (PersonID, Name, SS) Fears (FearID, Fear) Person_Fear (ID, PersonID, FearID)
现在我想列出每个人与他们有任何恐惧(可能是多重恐惧,但也可能没有).即使一个人没有与他们有关联的恐惧,也必须显示人员表.
我想我需要做LEFT JOIN,但我的代码似乎不起作用:
SELECT persons.name,
persons.ss,
fears.fear
FROM persons
LEFT JOIN fears
ON person_fear.personid = person_fear.fearid
Run Code Online (Sandbox Code Playgroud)
我在这做错了什么?
很多"BAW"(大屁股网站)正在使用数据存储和检索技术,这些技术依赖于带有索引的巨大表,并使用在查询中不会/不能使用JOIN的查询(BigTable,HQL等)处理可伸缩性和分片数据库.当你有大量和非常相关的数据时,它是如何工作的?
我只能推测,这种加入的大部分必须在应用程序方面完成,但这不会开始变得昂贵吗?如果您必须对几个不同的表进行多次查询以获取要编译的信息,该怎么办?是不是多次开始变得比仅仅使用连接更昂贵的数据库?我想这取决于你有多少数据?
对于常用的ORM,它们如何处理无法使用连接?今天在大量使用的ORM中是否有对此的支持?或者大多数必须接近这一级别数据的项目是否倾向于自行推出?
所以这不适用于我现在正在进行的任何项目,但现在已经有几个月了,我只能猜测"最佳实践"是什么.我从来没有必要在任何项目中解决这个问题,因为他们从未达到过需要的规模.希望这个问题能帮助其他人......
如下所述,ORM在没有连接的情况下"无法正常工作".是否有其他数据访问层已经可供处理此级别数据的开发人员使用?
编辑: 有些澄清,Vinko Vrsalovic说:
"我相信窃笑者想要讨论NO-SQL,其中事务数据被非规范化并在Hadoop或BigTable或Cassandra方案中使用."
这正是我所说的.
抓住xkcd参考的人的奖励积分.
我在~7000行T-SQL存储过程中有我的业务逻辑,其中大多数都有下一个JOIN语法:
SELECT A.A, B.B, C.C
FROM aaa AS A, bbb AS B, ccc AS C
WHERE
A.B = B.ID
AND B.C = C.ID
AND C.ID = @param
Run Code Online (Sandbox Code Playgroud)
如果我用这个替换这样的查询,我会获得性能增长:
SELECT A.A, B.B, C.C
FROM aaa AS A
JOIN bbb AS B
ON A.B = B.ID
JOIN ccc AS C
ON B.C = C.ID
AND C.ID = @param
Run Code Online (Sandbox Code Playgroud)
或者他们是一样的?
我想加入两个表,但只能获得table1上每条记录的table2记录
例如:
SELECT c.id, c.title, p.id AS product_id, p.title
FROM categories AS c
JOIN products AS p ON c.id = p.category_id
Run Code Online (Sandbox Code Playgroud)
这会让我记录下来products,这不是我想要的.我想要每个类别1个[第一个]产品(我sort在产品领域有一个专栏).
我该怎么做呢?
join ×10
mysql ×3
sql ×3
hibernate ×2
arrays ×1
bigtable ×1
collections ×1
criteria ×1
fetch ×1
filter ×1
hadoop ×1
javascript ×1
limit ×1
mongodb ×1
nosql ×1
orm ×1
performance ×1
select ×1
sql-server ×1
t-sql ×1
where-clause ×1