3个表
CREATE TABLE_A{
A_ID NUMBER NOT NULL,
A_VALUE VARCHAR2(10),
constraint PK_TABLE_A primary key (A_ID)
};
CREATE TABLE_B{
B_ID NUMBER NOT NULL,
B_VALUE VARCHAR2(10),
constraint PK_TABLE_B primary key (B_ID)
};
CREATE TABLE_RELAT{
A_ID NUMBER NOT NULL,
B_ID NUMBER NOT NULL,
constraint PK_TABLE_TABLE_RELAT primary key (A_ID,B_ID)
}关系是: TABLE_A <--> TABLE_RELAT <--> TABLE_B
样例数据如下(关系图可见附件):
TABLE_A
A_ID  A_VALUE
1     A_VALUE_1
2     A_VALUE_2
3     A_VALUE_3TABLE_B
B_ID  B_VALUE
1     B_VALUE_1
2     B_VALUE_2
3     B_VALUE_3TABLE_RELAT
A_ID  B_ID
1     1
1     2
1     3
2     1
2     3
3     2
3     3现在知道A_ID=3,需要把TABLE_RELAT中相关联的数据都拿出来,方法不限,当然越优化越好啦。求求大家看在我打了这么多字的份上帮帮忙啦

解决方案 »

  1.   

    select *
           from TABLE_A  a,
                TABLE_A b,
                TABLE_RELAT c
           where a.a_id=c.a_id
                 and b._id=c.b_id
                 and c.a_id=3
      

  2.   

    hebo2005的方法试过啦,不行。只会拿到c.a_id=3的数据
      

  3.   

    修改一下样例数据
    TABLE_A
    A_ID  A_VALUE
    1     A_VALUE_1
    2     A_VALUE_2
    3     A_VALUE_3
    4     A_VALUE_4TABLE_B
    B_ID  B_VALUE
    1     B_VALUE_1
    2     B_VALUE_2
    3     B_VALUE_3
    4     A_VALUE_4TABLE_RELAT
    A_ID  B_ID
    1     1
    1     2
    1     3
    2     1
    2     3
    3     2
    3     3
    4     4想要的结果集如下:
    1     1
    1     2
    1     3
    2     1
    2     3
    3     2
    3     3
      

  4.   

    你不说a_id=3嘛,没看懂你的要求
      

  5.   

    想要的结果集如下: 
    1    1 
    1    2 
    1    3 
    2    1 
    2    3 
    3    2 
    3    3
    你这结果
    直接 
    select *
           from 
                TABLE_RELAT c
           where c.a_id<=3
    不就行了