我有三个表,情况如下:select A.*,B.列名,C.* from
A,
B,
C
where A.列名 in (select distinct(条件) from 表名 where 条件='XXXXXXXXXX')结果查询出来的列都没有值,然后去掉C表:select A.*,B.列名from
A,
B
where A.列名 in (select distinct(条件) from 表名 where 条件='XXXXXXXXXX')结果查询出来就有值了!
==============
where A.列名 in (select distinct(条件) from 表名 where 条件='XXXXXXXXXX')
这个条件肯定是满足的!
======
请教为什么会出现这种情况??????????????????
A,
B,
C
where A.列名 in (select distinct(条件) from 表名 where 条件='XXXXXXXXXX')结果查询出来的列都没有值,然后去掉C表:select A.*,B.列名from
A,
B
where A.列名 in (select distinct(条件) from 表名 where 条件='XXXXXXXXXX')结果查询出来就有值了!
==============
where A.列名 in (select distinct(条件) from 表名 where 条件='XXXXXXXXXX')
这个条件肯定是满足的!
======
请教为什么会出现这种情况??????????????????
如果关联查询没有记录,按你的情况,肯定是C表没有记录。
也就是说,如果A,B两个表关联,只要任一个表中没有记录,
即使没有任何关联条件,都不会查询出记录。
即:select * from a,b;是查询不到记录的!
我希望联合查询的时候如果C表没值可以显示空,但是不能影响A,B表的值显示!
A,
B,
C
where A.列名 in (select distinct(条件) from 表名 where 条件='XXXXXXXXXX')
想到了一个办法,可以试试。先用a,b关联查询的集合再与c表进行外连接。如下:
select * (select A.*,B.列名 TX from
A,
B where A.列名 in (select distinct(条件) from 表名 where 条件='XXXXXXXXXX')
) tmp,C where tmp.TX = C.列名(+)(任意列)
楼主补贴建表sql 和数据 懒得测试了