情况是这样的:(Postgresql)
表A:
------------
| a_id    |
------------
表B:(表A的分组)
----------------------------
| b_id     |   a _id[]    |
----------------------------表C:
-------------
| c_id     |
-------------
表D:(表C的分组)
----------------------------
| d_id     |   c_id[]     |
----------------------------表E:
------------------------------------------------------------
| e_id    | a_id[]   |  b_id[]   |  c_id[]   |  d_id  |
------------------------------------------------------------其中 x[]表示数组苦思不得其解现在,已知  a_id,需要根据E表,来找出所有的 c_id。
描述是这样:select c_id from C where (select c_id,d_id where a_id='a_id' or a_id in b_id).总之我描述不出来了,混乱了。。
就是知道一个a_id, 先找出其b_id(可能有多条),然后查表E,找出a_id=a_id or b_id=b_id的记录。然后c_id就是c_id了,在把d_id变成c_id并加上前面查出来的c_id,就是最终要查的东东。谢谢

解决方案 »

  1.   

    没看懂,你的表A的数组是指什么?对于MYSQL数据库来说,没有什么数组的概念。建议直接举例说明。   建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
       参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
       
       1. 你的 create table xxx .. 语句
       2. 你的 insert into xxx ... 语句
       3. 结果是什么样,(并给以简单的算法描述)
       
       这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。   
      

  2.   

    postgresql~~A中数据:
    a_id
    1001
    1002
    1003B中数据:
    b_id,  a_id[]
    2001   {1001,1003}
    2002   {1002,1003}
    2003   {1001}C中数据:
    c_id
    3001
    3002
    3003D中数据:
    d_id,  c_id[]
    4001    {3002,3003}
    4002    {3001,3003}
    4003    {3002}E中数据:
    e_id,  a_id[],      b_id[],    c_id[],        d_id[]
    5001   {1001,1002}  {2001,2002}  {3001,3002}  {4001,4002}
    5002   {1002}       {2003}       {3003}       {4003}比如,查寻a_id=1001,需要得出c_id={3001,3002,3003}
             a_id=1003,~~~~~~~c_id={}