10 个解决方案
#1
用连接呀!
如:
declare @a table(a int,b int)
declare @b table(a int,b int)
insert @a values(1,1)
insert @a values(2,2)
insert @b values(1,1)
insert @b values(3,3)
--左:
select * from @a Aa left join @b Bb on Aa.a=Bb.a
--右:
select * from @a Aa right join @b Bb on Aa.a=Bb.a
--内
select * from @a Aa join @b Bb on Aa.a=Bb.a
--外
select * from @a Aa full join @b Bb on Aa.a=Bb.a
--完全
select * from @a,@b
如:
declare @a table(a int,b int)
declare @b table(a int,b int)
insert @a values(1,1)
insert @a values(2,2)
insert @b values(1,1)
insert @b values(3,3)
--左:
select * from @a Aa left join @b Bb on Aa.a=Bb.a
--右:
select * from @a Aa right join @b Bb on Aa.a=Bb.a
--内
select * from @a Aa join @b Bb on Aa.a=Bb.a
--外
select * from @a Aa full join @b Bb on Aa.a=Bb.a
--完全
select * from @a,@b
#2
如果是纵向连接用union all如:
select 列1,列2 from 表1 where 条件
union all
select 列1,列2 from 表2 where 条件
select 列1,列2 from 表1 where 条件
union all
select 列1,列2 from 表2 where 条件
#3
能不能具体点?比如有一个学生数据库,中有四个表,(一年级,二年级,三年级,四年级)
找出所有姓“李”的同学,怎样来写呢?
谢谢,解决后给200分,决不食言,我有3000多分啊
找出所有姓“李”的同学,怎样来写呢?
谢谢,解决后给200分,决不食言,我有3000多分啊
#4
select a.* from table1 a
where a.name like '李'
union all
select b.* from table2 b
where b.name like '李'
union all
select c.* from table3 c
where c.name like '李'
union all
select d.* from table4 d
where a.name like '李'
where a.name like '李'
union all
select b.* from table2 b
where b.name like '李'
union all
select c.* from table3 c
where c.name like '李'
union all
select d.* from table4 d
where a.name like '李'
#5
select sname
from grade1 where sname like '李%’
union
select sname
from grade2 where sname like '李%’
以下同
from grade1 where sname like '李%’
union
select sname
from grade2 where sname like '李%’
以下同
#6
union all
有什么作用?
有什么作用?
#7
没错,纵向联接
#8
但是这样用union的话,只能得到结果,能不能把结果同时保存到一张表中(指的是
在sql的查询对话框实现,不是用编程把(ado))
在sql的查询对话框实现,不是用编程把(ado))
#9
INSERT INTO 新表 (SELECT * FROM 旧表或者是一个查询的结果集)
前提是旧表与新表的字段要相同才行!
前提是旧表与新表的字段要相同才行!
#10
union all的作用是联接所有查询到的结果。
将查询的所有结果联接起来。
将查询的所有结果联接起来。
#1
用连接呀!
如:
declare @a table(a int,b int)
declare @b table(a int,b int)
insert @a values(1,1)
insert @a values(2,2)
insert @b values(1,1)
insert @b values(3,3)
--左:
select * from @a Aa left join @b Bb on Aa.a=Bb.a
--右:
select * from @a Aa right join @b Bb on Aa.a=Bb.a
--内
select * from @a Aa join @b Bb on Aa.a=Bb.a
--外
select * from @a Aa full join @b Bb on Aa.a=Bb.a
--完全
select * from @a,@b
如:
declare @a table(a int,b int)
declare @b table(a int,b int)
insert @a values(1,1)
insert @a values(2,2)
insert @b values(1,1)
insert @b values(3,3)
--左:
select * from @a Aa left join @b Bb on Aa.a=Bb.a
--右:
select * from @a Aa right join @b Bb on Aa.a=Bb.a
--内
select * from @a Aa join @b Bb on Aa.a=Bb.a
--外
select * from @a Aa full join @b Bb on Aa.a=Bb.a
--完全
select * from @a,@b
#2
如果是纵向连接用union all如:
select 列1,列2 from 表1 where 条件
union all
select 列1,列2 from 表2 where 条件
select 列1,列2 from 表1 where 条件
union all
select 列1,列2 from 表2 where 条件
#3
能不能具体点?比如有一个学生数据库,中有四个表,(一年级,二年级,三年级,四年级)
找出所有姓“李”的同学,怎样来写呢?
谢谢,解决后给200分,决不食言,我有3000多分啊
找出所有姓“李”的同学,怎样来写呢?
谢谢,解决后给200分,决不食言,我有3000多分啊
#4
select a.* from table1 a
where a.name like '李'
union all
select b.* from table2 b
where b.name like '李'
union all
select c.* from table3 c
where c.name like '李'
union all
select d.* from table4 d
where a.name like '李'
where a.name like '李'
union all
select b.* from table2 b
where b.name like '李'
union all
select c.* from table3 c
where c.name like '李'
union all
select d.* from table4 d
where a.name like '李'
#5
select sname
from grade1 where sname like '李%’
union
select sname
from grade2 where sname like '李%’
以下同
from grade1 where sname like '李%’
union
select sname
from grade2 where sname like '李%’
以下同
#6
union all
有什么作用?
有什么作用?
#7
没错,纵向联接
#8
但是这样用union的话,只能得到结果,能不能把结果同时保存到一张表中(指的是
在sql的查询对话框实现,不是用编程把(ado))
在sql的查询对话框实现,不是用编程把(ado))
#9
INSERT INTO 新表 (SELECT * FROM 旧表或者是一个查询的结果集)
前提是旧表与新表的字段要相同才行!
前提是旧表与新表的字段要相同才行!
#10
union all的作用是联接所有查询到的结果。
将查询的所有结果联接起来。
将查询的所有结果联接起来。