Database 使用自连接与嵌套PL/SQL查询

Database 使用自连接与嵌套PL/SQL查询,database,nested,join,Database,Nested,Join,我需要执行如下查询: 假设表中的列如-、和,我需要在以下条件下找到name='name'的值 键应该在键i中,其中name_i='name_i'和value='value_i'。 该键应该位于key_j中,其中name_j='name_j'和value='value_j'。 该键应位于key_k中,其中name_k='name_k'和value='value_k'。 我当前正在使用表单的嵌套查询: Select a.value from <table_name> a whe

我需要执行如下查询:

假设表中的列如-、和,我需要在以下条件下找到name='name'的值

键应该在键i中,其中name_i='name_i'和value='value_i'。 该键应该位于key_j中,其中name_j='name_j'和value='value_j'。 该键应位于key_k中,其中name_k='name_k'和value='value_k'。 我当前正在使用表单的嵌套查询:

  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'))));

是否有一种更通用的形式使用自连接或任何其他技术?我的表很小,实际上不需要优化,但对于大型数据集,什么是理想的解决方案?

我认为这在很大程度上取决于数据库实现以及查询优化器将如何重写每个查询类型。不要以为你能马上回答关于所有数据库系统的这个问题。

我的案例是关于PL/SQL查询和Oracle数据库的。了解MySQL也会有所帮助