我需要执行这样的查询:
假设表格的列如 - <key>,<name>,<value>
,我需要在以下条件下找到name ='NAME'的值。
我目前正在使用表单的嵌套查询:
Select a.value from <table_name> a
where a.name='NAME'
and a.key IN(
Select b.key
from <table_name> b
where (b.name = 'NAME_i' and b.value = 'VALUE_i')
and b.key IN(
Select c.key
from <table_name> c
where (c.name = 'NAME_j'
and c.value = 'VALUE_j')
and c.key IN(
Select d.key
from <table_name> d
where (d.name = 'NAME_k' and d.value = 'VALUE_k'))));
使用自我加入或任何其他技术是否有更通用的形式?我的表很小,并不是真正需要优化,但对于大型数据集来说,理想的解决方案是什么?
答案 0 :(得分:0)
我认为这在很大程度上取决于数据库实现以及查询优化器将如何重写每种查询类型。不要以为您可以立即回答有关所有数据库系统的问题。
答案 1 :(得分:0)
我的情况是PL / SQL查询和Oracle DB。也有助于了解MySQL。