查询两个表的数据sql
1. 如何用一个sql分别从两个表中查询数据
sql语句从一张表中查询数据插入到另一张表中的方法如下:
1、select * into destTbl from srcTbl。
2、insert into destTbl(fld1, fld2) select fld1, 5 from srcTbl。以上两句都是将 srcTbl 的数据插入到 destTbl,但两句又有区别的:第一句(select into from)要求目标表(destTbl)不存在,因为在插入时会自动创建。第二句(insert into select from)要求目标表(destTbl)存在,由于目标表已经存在,所以我们除了插入源表(srcTbl)的字段外,还可以插入常量。
2. sql语句 同时查询两个表
sql多表关联查询跟条件查询大同小异,主要是要知道表与表之前的关系很重要;举例说明:(某数据库中有3张表分别为:userinfo,dep,sex)
userinfo(用户信息表)表中有三个字段分别为:user_di(用户编号),user_name(用户姓名),user_dep(用户部门) 。(关系说明:userinfo表中的user_dep字段和dep表中的dep_id字段为主外键关系,userinfo表中的user_sex字段和sex表中的sex_id字段为主外键关系)
3. 用SQL查询两个表中相同的数据
1、创建测试表;
create
table
test_col_1(id
number,
var
varchar2(200));
create
table
test_col_2(id
number,
var
varchar2(200));
2、插入测试数据,
insert
into
test_col_1
select
level*8,
'var'||level*8
from
al
connect
by
level
<=
20;
insert
into
test_col_2
select
level,
'var'||level
from
al
connect
by
level
<=
100;
3、比较两表的数据,可以发现表2的数据多于表1;
select
'test_col_1'
tbl_name,
count(*)
from
test_col_1
t
union
all
select
'test_col_2'
tbl_name,
count(*)
from
test_col_2
t
4、表1有部分比表2多的数据,
select
*
from
test_col_1
minus
select
*
from
test_col_2;
5、插入表1多的数据,如表2,执行sql,可以发现有多条记录插入。
insert
into
test_col_2
select
*
from
test_col_1
minus
select
*
from
test_col_2;
4. sql查询两个表相同的数据
SQL语句如下:
SELECT * from TABLE1
full join TABLE2 on TABLE1.xingming = TABLE2.xingming
where
TABLE1.xingming is null or TABLE2.xingming is null
分析:
1、首先得出两个表的并集
从结果中可以看出,表1中的赵二在表2中没有相同xingming的记录。
表2中的刘六在表1中没有相同xingming的记录。
本题还有其它多种解法,此处列出比较好理解的一种。
(4)查询两个表的数据sql扩展阅读:
使用自联接
即使表在数据库中没有自反关系,也可将它与自身联接。 例如,可使用自联接查找生活在同一城市的作者对。
与任何联接一样,自联接至少需要两个表。 不同之处在于,不是向查询中添加第二个表,而是添加同一个表的第二个实例。 这样,可将表的第一个实例中的列与第二个实例中的同一列相比较,这样可相互比较列中的值。查询和视图设计器为表的第二个实例分配一个别名。
例如,如果要创建自联接来查找居住在 Berkeley 内的所有作者对,可将表的第一个实例中的 city 列与第二个实例中的 city 列相比较。 所得到的查询可能类似于:
SELECT
authors.au_fname, authors.au_lname, authors1.au_fname AS Expr2, authors1.au_lname AS Expr3
FROM authors INNER JOIN authors authors1 ON authors.city = authors1.city
WHERE
authors.city = 'Berkeley'
参考资料:
网络.full join
5. sql 两个表的数据进行关联查询
查询2个表然后对比唯一的主键,对比表名sheet1,sheet2
SELECT * FROM sheet1 LEFT JOIN sheet2 ON sheet1.`列名` = sheet2.`列名`
6. SQL怎么连接查询2个表
使用where语句进行查询,如:
select Emp.E_Id,Company.C_OraName from Emp,Company where Companey.C_Id=Emp.C_Id
但是往往会碰到比较复杂的语句,这时候使用where就不太合适了,其实SQL可以用较为直接的形式进行连接操作,可以在From子句中以直接的形式指出:
select top 10 E_Id,E_Name,C_Name
from
Emp join Companey on Companey.C_Id=Emp.C_Id
where
E_Id not in (select top 20 E_Id from Emp order by E_Id asc)
order by E_Id asc
//查询表Emp中第21到第30条数据以升序排列,其中C_Name来自于另一个表
(6)查询两个表的数据sql扩展阅读:
SQL查询语句
1、获取当前数据库中的所有用户表select Name from sysobjects where xtype='u' and status>=0
2、获取某一个表的所有字段select name from syscolumns where id=object_id('表名')select name from syscolumns where id in (select id from sysobjects where type = 'u' and name = '表名')
3、查看与某一个表相关的视图、存储过程、函数select a.* from sysobjects a, syscomments b where a.id = b.id and b.text like '%表名%'
4、查看当前数据库中所有存储过程select name as 存储过程名称 from sysobjects where xtype='P'
5、查询用户创建的所有数据库select * from master..sysdatabases D where sid not in(select sid from master..syslogins where name='sa')
或者select dbid, name AS DB_NAME from master..sysdatabases where sid <> 0x01
6、查询某一个表的字段和数据类型select column_name,data_type from information_schema.columnswhere table_name = '表名'
7. SQL怎么查询两个表中不同的数据
工具/材料:Management Studio。
1、首先在桌面上,点击“Management Studio”图标。
8. 在数据库中的SQL中同时对两个表的查询怎么写啊
select
u.姓名,u.学号,s.成绩
from
表一
u
,表二
s
where
u.姓名=s.姓名
and
s.成绩>60
但是用姓名来关联不合理啊,学生中同名同姓的很多哦,用学号关联比较好点
9. SQL怎么同时查询两个表的数据
同时输出AC01表中AAB004和AZ03表中AAB001和AAB002的数据
select
a.AAB004,
b.AAB001,
b.AAB002
from
AC01
a,
AZ03
b;
(可以加where条件,例如:where
a.AAB001=b.AAB001
)。
“两个表中有相同的字段AAB001,然后我需要统计他们AAB001不同值的数量该怎么写”
是不是要统计出
AC01表中AAB001与AZ03表中AAB001不同值的个数呀?
select
a.AAB004,
b.AAB001,
b.AAB002,
count(*)
as
numb
from
AC01
a,
AZ03
b
where
a.AAB001!=b.AAB001
;
10. sql语句如何查询两个数据表
首先你的查询语句就写错了,你要的数据是a
和b
两表一起查出来的,那就找找你设计表的时候,两表之间关联的字段!就可以了