高分!!!!!请教问题。
表A
TEST_A_A TEST_A_B TEST_A_C EST_A_D
---------- --------- ---------- ------------
3 3 3 3
2 2 2 2
1 1 1 1
表B
TEST_B_A TEST_B_B TEST_B_C TEST_B_D TEST_B_E
---------------------- -----------------------------------
1 A 1 1 1
1 B 2 2 2
3 BZ 4 4 4
2 A 2 2 2
1 BZ 3 3 3
2 A 3 3 3
3 BZ 3 3 3
2 A 2 2 2
要求:
1,A表和B表连接。
2,假如B表中TEST_B_B字段的值只有A, 通过SQL返回一条记录:
TEST_B_A TEST_B_B TEST_B_C TEST_B_D TEST_B_E
---------------------- -----------------------------------
2 A 2 2 2
或者
TEST_B_A TEST_B_B TEST_B_C TEST_B_D T
---------------------- ------------------------
2 A 3 3 3
返回上面任意一条记录都可以。(注意:只能返回一条记录)
3,假如表中TEST_B_B字段的值既有BZ,又有A,又有B,通过SQL返回两条记录:
TEST_B_A TEST_B_B TEST_B_C TEST_B_D TEST_B_E
---------------------- --------- ---------- ----------------
1 A 1 1 1
1 BZ 3 3 3
或者
TEST_B_A TEST_B_B TEST_B_C TEST_B_D TEST_B_E
---------------------- --------- ---------- ----------------
1 B 2 2 2
1 BZ 3 3 3
返回上面任意两组记录都可以。(注意:返回记录里TEST_B_B的值必须包含BZ。)
[解决办法]
好像结果里面A,B表不需要相连的呀,为何一定要想连,若一定要要相连,又以A,B表中哪个字段相连.
[解决办法]
你可以那样嘛,先查出TEST_B_B字段的值等于A的,再在后面根据其他的字段确定一条记录,
譬如TEST_B_A=2.
这样可以得到你想要的结果,但我不知道那样有什么意义,
[解决办法]
select B.TEST_B_A ,B.TEST_B_B,B.TEST_B_C,B.TEST_B_D,B.TEST_B_E
from B,A where B.TEST_B_A=A.TEST_A_A and B.TEST_B_C=A.TEST_A_B and B.TEST_B_D=A.TEST_A_C and B.TEST_B_E=A.EST_A_D