sql两表合并查询
A. sql 语句合并查询,两张表字段一样
如果两张表的各自查询都只有一行结果。想把两个查询的结果合并到一行。可以直接使用自然连接:select
aa.*
,
bb.*
from
(select
*
from
a)
as
aa
,
(select
*
from
b)
as
bb
其中
(select
*
from
a)
和(select
*
from
b)是你的两张表的查询,结果各自只有一行。
如果说,你的意思是每张表查询出来的结果都有多行。你需要这多行最后全部显示为一行内容。可能你需要使用
select
*
from
a
for
xml
path('')
来将每个查询的多行结果转换为一行xml文本字符串。
B. SQL怎么把两个表的数据合在一起查询!
如果你的这两个表是有键的关联的话,建议在查询的时候就进行联结查询,而不是分别查出来再合在一起。使用左连接一般就可以解决你的问题。
如果你的这两个表查出来的数据没有什么关联,只是单纯的合在一起而已的话。那你可以把结果的dataset进行手动的结合。
还有不懂请问。谢谢
C. SQL语句如何查询合并两张表(表一和表二有相同字段,但数量不通)显示两张表的所有字段
select isnull(a.name,b.name) as name,isnull(a.hobby,’—’) as hobby,isnull(b.age,null) as age
From 表1 a
Full join 表2 b on a.name =b.name
D. SQL求两张表如何合并。
先用左连接将1表完全查出,再用右连接将2表完全查出,最后合并结果
SELECT t1.id AS `编号`,t1.`name` AS `名称`,t1.score AS `科目一分数`,CASE WHEN t2.score IS NULL THEN 0 ELSE t2.score END AS `科目二分数`
FROM t1 LEFT JOIN t2 ON t1.id= t2.id
UNION
SELECT t2.id AS `编号`,t2.`name` AS `名称`,CASE WHEN t1.score IS NULL THEN 0 ELSE t1.score END AS `科目一分数`,t2.score AS `科目二分数`
FROM t1 RIGHT JOIN t2 ON t1.id= t2.id;
E. sql查询 合并两个表
select
id,name
from
article
where
article_title
like
'x';
union
select
oid
as
id,name
from
resource
where
resource_title
like
'x';
你的字段都
as
成一样的就可以了,字段列的数量要相同.
F. SQL 合并两表
两个表连接查询然后用distinct去掉重复的即可。
给你点思路,先把两个表连接结果作为一张表,然后再从这个表中过滤掉重复的。
select
distinct
t3.编号,t3.名称
from
(
select
t1.编号,t1.名称
from
t1
join
t2
)
as
t3
G. sql两个表查询合并为一个表
select
id,name
from
article
where
article_title
like
'x';
union
select
oid
as
id,name
from
resource
where
resource_title
like
'x';
你的字段都
as
成一样的就可以了,字段列的数量要相同.
H. SQL 两张表合并 (两张表的列都相同)
可以参考下面的方法:
1、第一种,用一张临时表,把所有数据都放在一张表里
INSERT INTO QunList SELECT * FROM QunList89,90,91,92;
再在QunList中查询
2、第二种,用 UNION ALL方式查询
SELECT * FROM QunList89
UNION ALL
SELECT * FROM QunList90;
(8)sql两表合并查询扩展阅读:
SQL参考语句
删除表
drop table tabname--这是将表连同表中信息一起删除但是日志文件中会有记录
删除信息
delete from table_name-这是将表中信息删除但是会保留这个表
增加列
Alter table table_name add column_name column_type [default 默认值]--在表中增加一列,[]内的内容为可选项
I. SQL 有关两表合并的问题
select
t1.*,
t2.*
into
新表名
from
t1,t2
where
1=2
where
1=2
什么意思啊
------------------
即符合条件的结果为空集(也即只复制表结构,不包含数据)
关于二楼的例子,最后所要得到的表格如下:
c1
c2
1
A
2
B
3
C
-------------------
如果是这样的话,那就不能简单的采用"笛卡尔乘积"的做法了,因为会造成很多重复的记录的。
这样的需求,你只能增加标识字段(假如现在2表都有自增列id),然后这样查询:
select
t1.列1,
t2.列2
into
新表名
from
t1,t2
where
t1.id=t2.id
或
into
into
新表名(列1,列2)
select
t1.列1,
t2.列2
from
t1,t2
where
t1.id=t2.id
楼上的alex_hy,你老跟我作对啥?
拜托,用用你的脑吧,教别人用什么“笛卡尔乘积”,稍有点知识的都能想象这样的效率多差?
我的思路有问题吗?
老是说我乱写,那你的回复为什么要跟我思路走?
你有本事就自己写和问,不要跟在我屁股后面走
to
alex_hy:
刚去看了下你的回答记录,居然那么多“好评”,亏你那些回答的答案,明人都看得出来是你自己刷的“好评”啦,呵呵,真为你感到脸红。
J. SQL怎样合并两个表进行查询
select top 10 * from
(select * from 表1
union all
select * from 表2) as T
order by 某字段union
all就是把俩表连接
然后把他俩连接的结果集起名叫T
然后你就可以用top了
你可以直接运行一下括号里那句,如果表结构相同你两个可以用*,如果部分字段相同,你就要把在一起的字段写到一起了,比如
select id,name from 表1
union all
select id,name from 表2类似这样