求怎么把几个不相关的表中数据取出来!


要在datagird中取几个表中的数据出来放一行,但是这几个表又没有关联,一定要通过外健来取
吗?还有别的方法吗?
[74 byte] By [wuxingmaxail-君子坦荡荡小人常戚戚] at [2008-5-24]
# 1
比较笨的方法是分别将这几个表中的数据取出到Dataset1,Dataset2,Dataset3,……
再将这几个Dataset中的数据填充到一个同一个DataTable Dt中
然后
DataGrid1.DataSource=Dt;
DataGrid1.DataBind();
就可以得到你要的结果了。
longli67-yaomv at 2007-10-25 > top of Msdn China Tech,MS-SQL Server,基础类...
# 2
create table t1(a int,b int)
create table t2(c int,d int)

insert into t1
select 1,1
union all
select 2,2

insert into t2
select 3,3
union all
select 4,4

select identity(int,1,1) as id,* into #1 from t1
select identity(int,1,1) as id,* into #2 from t2
select a,b,c,d from #1,#2 where #1.id=#2.id

drop table t1
drop table t2

a b c d
------------------------------
1 1 3 3
2 2 4 4
csdnweii-庸医 at 2007-10-25 > top of Msdn China Tech,MS-SQL Server,基础类...
# 3
@csdnweii
不是很清楚啊,你这不是建表的时候,把两个表连在一起吗?
select identity(int,1,1) as id,* into #1 from t1
select identity(int,1,1) as id,* into #2 from t2
select a,b,c,d from #1,#2 where #1.id=#2.id
这段什么意思啊,我的SQL水平太菜了!555
# 4
自己的描述有问题啊楼主. 什么逻辑链都没有,怎么回答.
# 5
select identity(int,1,1) as id,* into #1 from t1
select identity(int,1,1) as id,* into #2 from t2

这两句是创建两个临时表 #1和#2 分别复制了原表 t1和t2 的数据,同时增加了个标志列
目的是用标志列来关联两个表。

刚才的那个语句还有点问题,就是如果t1和t2 的记录数目不一样 就会少查出来一些数据
csdnweii-庸医 at 2007-10-25 > top of Msdn China Tech,MS-SQL Server,基础类...
# 6
把最后一句改为:
select a,b,c,d from #1 full join #2 on #1.id=#2.id
csdnweii-庸医 at 2007-10-25 > top of Msdn China Tech,MS-SQL Server,基础类...
# 7
我的意思,就是有很多个表,我要在这些表里取需要的值,但是这些表又没有关联起来! 怎

么显示这些值 在同一个datagild里面! 多个表,然后要再去建产关联吗? 是别人以前建好的
表,又不能改动!怎么办啊!
# 8
你给点数据看看.
dawugui-潇洒老乌龟 at 2007-10-25 > top of Msdn China Tech,MS-SQL Server,基础类...
# 9
select a.bb, b.cc, c.ee...
into 表1
from a,b,c...
yangyangxie-想飞的鱼 at 2007-10-25 > top of Msdn China Tech,MS-SQL Server,基础类...
# 10
数据都没有怎么看啊??????
yangyangxie-想飞的鱼 at 2007-10-25 > top of Msdn China Tech,MS-SQL Server,基础类...
# 11
CREATE TABLE [BG_Employee] (
[Num] [char] (4) COLLATE Chinese_Taiwan_Stroke_CI_AS NOT NULL ,
[Name] [varchar] (20) COLLATE Chinese_Taiwan_Stroke_CI_AS NULL ,
[DeptNo] [char] (4) COLLATE Chinese_Taiwan_Stroke_CI_AS NULL ,
[Birthday] [datetime] NULL ,
[ICQ] [char] (10) COLLATE Chinese_Taiwan_Stroke_CI_AS NULL )

CREATE TABLE [MF_PSS] (
[PS_ID] [varchar] (2) COLLATE Chinese_Taiwan_Stroke_CI_AS NOT NULL ,
[PS_NO] [varchar] (10) COLLATE Chinese_Taiwan_Stroke_CI_AS NOT NULL ,
[PS_DD] [datetime] NULL ,
[PAY_DD] [datetime] NULL ,
[CHK_DD] [datetime] NULL ,
[TRAD_MTH] [varchar] (10) COLLATE Chinese_Taiwan_Stroke_CI_AS NULL ,
[BAT_NO] [varchar] (15) COLLATE Chinese_Taiwan_Stroke_CI_AS NULL ,
[CUS_NO] [varchar] (12) COLLATE Chinese_Taiwan_Stroke_CI_AS NULL ,
[VOH_ID] [varchar] (2) COLLATE Chinese_Taiwan_Stroke_CI_AS NULL CONSTRAINT [DF_MF_PSS_VOH_ID] DEFAULT ('01'),
[VOH_NO] [varchar] (10) COLLATE Chinese_Taiwan_Stroke_CI_AS NULL ,
[DEP] [varchar] (4) COLLATE Chinese_Taiwan_Stroke_CI_AS NULL ,
[INV_NO] [varchar] (14) COLLATE Chinese_Taiwan_Stroke_CI_AS NULL ,
[TAX_ID] [varchar] (1) COLLATE Chinese_Taiwan_Stroke_CI_AS NULL )
各取这两 个表中的任一项出来显示,用什么办法,如果表多了的话,怎么 选!它们又没有关联!