我有两个具有以下结构的文件
ITEM
{
ITEM_ID(primary Key),
ITEM_NAME,
ITEM_DESCRIPTION
}
ITEMREGULATION
{
ITEMREGULATION_ID,
ITEM_ID(Foreign Key),
ITEMREGULATION_TYPE
}
这些表属于[ITEM] ----- * [ITEMREGULATION]之间的一对多关系。 现在我想对这些数据执行以下sql查询 -
从ITEM内部联接ITEMREGULATION选择* ITEM.ITEM_ID = ITEMREGULATION.ITEM_ID。
我在弹性搜索中尝试过嵌套关系,但ITEMREGULATION引用了ITEM,因此它进入无限循环并提供异常 - java.lang.StackOverflowError:null
如何在弹性搜索中获得上述sql查询?
答案 0 :(得分:0)
你的问题有两个解决方案。
ITEM.ITEM_ID
和ITEMREGULATION.ITEM_ID
可能是不同的类型,您可以比较int whit string。
核心SQL-qustion是
select * from ITEM inner join ITEMREGULATION on ITEM.ITEM_ID = ITEMREGULATION.ITEM_ID.
答案 1 :(得分:0)
最佳实践始终是非常规您的数据(如果可能)。
如果不是,您应该为您定义_parent
字段 ITEMREGULATION 。在elasticsearch中定义父子关系提示后,您可以使用has_parent
has_child
个查询来模拟 elasticsearch 中的加入。