我数据库有两张表 表的字段一样 如何才能用一张表格显示2张表的数据 或者是用一个DataTable显示两张表数据

我数据库有两张表 表的字段一样 如何才能用一张表格显示2张表的数据 或者是用一个DataTable显示两张表数据,第1张

如果是oracle的话,可以增加一个伪列进行full join

select

v1.id,v1.user,v1.pass

,v2.id,v2.user,v2.pass

from

(select rownum rn1,id,user,pass from a表 t1) v1

full join

(select rownum rn2,id,user,pass from b表 t2) v2

on v1.rn1=v2.rn2

只是一个思路,如果是access或者sqlserver的可能要改动伪劣的获取方法

另外就是取两个DataTable出来,手工合并

// 直接模拟了两个表,从数据库取DataTable就不写了

DataTable dt1 = new DataTable()

dt1.Columns.Add("id")

dt1.Columns.Add("user")

dt1.Columns.Add("pass")

DataTable dt2 = dt1.Clone()

dt1.Rows.Add(new object[] {1,"a","b" })

dt1.Rows.Add(new object[] {2,"v","m" })

dt2.Rows.Add(new object[] {2,"s","b" })

dt2.Rows.Add(new object[] {3,"l","n" })

DataTable dt_dest = dt1

DataTable dt_source = dt2

if(dt2.Rows.Count >dt1.Rows.Count)

{

dt_dest = dt2

dt_source = dt1

}

dt_dest.Columns.Add("id_b")

dt_dest.Columns.Add("user_b")

dt_dest.Columns.Add("pass_b")

dt_dest.Columns["id_b"].Caption = "id"

dt_dest.Columns["user_b"].Caption = "user"

dt_dest.Columns["pass_b"].Caption = "pass"

for(int i = 0i <dt_source.Rows.Counti++)

{

DataRow dest_row = dt_dest.Rows[i]

DataRow src_row = dt_source.Rows[i]

dest_row["id_b"] = src_row["id"]

dest_row["user_b"] = src_row["user"]

dest_row["pass_b"] = src_row["pass"]

}

dt_dest.AcceptChanges()

dt_dest应该就是你要的数据了

sql多表关联查询跟条件查询大同小异,主要是要知道表与表之前的关系很重要;

举例说明:(某数据库中有3张表分别为:userinfo,dep,sex)

userinfo(用户信息表)表中有三个字段分别为:user_di(用户编号),user_name(用户姓名),user_dep(用户部门) 。(关系说明:userinfo表中的user_dep字段和dep表中的dep_id字段为主外键关系,userinfo表中的user_sex字段和sex表中的sex_id字段为主外键关系)

dep(部门表)表中有两个字段分别为:dep_id(部门编号),dep_name(部门名称)。(主键说明:dep_id为主键)

sex(性别表)表中有两个字段分别为:sex_id(性别编号),sex_name(性别名称)。(主键说明:sex_id为主键)

‍‍一,两张表关键查询

1、在userinfo(用户信息表)中显示每一个用户属于哪一个部门。sql语句为:

select userinfo.user_di,userinfo.user_name,dep_name from userinfo,dep where userinfo.user_dep=dep.dep_id

2、在userinfo(用户信息表)中显示每一个用户的性别。sql语句为:

select userinfo.user_di,userinfo.user_name,sex.sex_name from userinfo,sex where userinfo.user_sex=sex.sex_id

二、多张表关键查询

最初查询出来的userinfo(用户信息表)表中部门和性别都是以数字显示出来的,如果要想在一张表中将部门和性别都用汉字显示出来,需要将三张表同时关联查询才能实现。

sql语句为:

select userinfo.user_di,userinfo.user_name,dep.dep_name,sex.sex_name from userinfo,dep,sex where userinfo.user_dep=dep.dep_id and userinfo.user_sex=sex.sex_id

(多个条件用and关联)

rs.open "select * from ciketianya order by id desc",conn,1,1

这里不是连接了一个表吗?

你在声明一个

set rs2=server.createobject("adodb.recordset")

rs2.open "select * from 新表 order by id desc",conn,1,1

就可以 *** 作了


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9857801.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存