多表关联查询sql
❶ sql语句多表关联怎么查询
用SELECT对多表关联进行查询。
❷ 多表联合查询SQL语句
我来讲一下多表联合查询SQL语句:
A、B两表
A表:idd name2 image2 tag2
1 长城 。 长城
2 故宫 。 故宫
3 天安门 。 天安门B表:id name image tag
1 爱情1 。 长城
2 天空 。 故宫
3 23爱 。 长城当tag2=tag,输出
查询结果:idd name2 image2 name image
1 长城 。 爱情1、23爱 。、。注:(A表记录1条,B表相关记录2条)以此展开循环
❸ sql多表关联查询能用哪几种方法写
楼主使用的是子查询,子查询局限性较大,只能显示第一张表的字段。你可以这样写
SELECT * FROM biz.coursecomment a,so.sodetail b,so.somaster c
where a.sono=b.sono and b.sono=c.sono and c.TeacherNO='100199' and b.IsStudentComment='1' AND IsTeacherComment='1' and a.ToCustomerNO='100199'
这样写就避免了各种的子查询。当然,你还可以写成join的形式。join的层次更分明,代码如下:
SELECT * FROM biz.coursecomment a
join so.sodetail b
on a.sono=b.sono
join so.somaster c
on c.sono=b.sono
where c.TeacherNO='100199' and b.IsStudentComment='1' AND IsTeacherComment='1' and a.ToCustomerNO='100199'
如果不懂,可以追问
❹ sql多表关联查询
用SELECT对多表关联进行查询。
❺ sql 多表联查询怎么用
可以用谓词或联结实现:
连接实现:
select * from b join a on b.id=a.id where a.b=21
联结实现的条件是两表id来自同一值域,表示意义相同.在连接时其实两可以作成一个表的:
也就是
id,a.b,a.c,b.b.b.c
但由于空值的问题,导致了部分依赖所以才会拆分成两个表的.
使用谓词实现:
select * from b where id in (select id from a where a.b=21)
这个可以实现两表id来自同一值域,但表示意义不同的情况.也就是说两表中的id有无关性.
相比较而言,连接的方式更快一些,但这种情况是两表来自同一值域,且意义相同,如果不是这种情况,可能得不到你正确的值的.而使用谓词不管意义是否相同,都可以得到正确的值.
玩数据库必须知道这两个表是否具有相关性,也就是设计时的意义,否则优化词句什么的都没有办法去做的!
❻ SQL多表联合查询怎么写
ID是TBALE1与TABLE2都有的字段,并且是相关联的字段
select * from table2 where id in (select id from table1 where 列1=2) where 你需要的条件
❼ sql 多表关联查询
SQL多个表实现联合查询
select LineId,Id,Country from Domestic
union all
select LineId,Id,Country from Freedom
-- 联合查询Domestic,Freedom表的LineId,Id,Country all代表不去除反复
--功能:[SQL语句] UNION [SQL语句]将两个语句中选择的同一列中的不同的值筛选出来
SELECT<表1>.<列名> ,<表2><列名>FROM<表1>OUTER JOIN<表2> ON<表1>.<列>=表2>.<列名>
--功能:实现两个表的外连接
Select Domestic.LineId,Freedom.LineId from Domestic,Freedom where Domestic.Sames=Freedom.Sames
Select Domestic.LineId,Freedom.LineId FROM Domestic inner join Freedom on Freedom.Sames=Domestic.Sames
--功能:实现两个表的内连接 把Domestic,Freedom两个表用Domestic.Sames=Freedom.Sames关联起来显示Domestic.LineId,Freedom.LineId
------------------------
我的数据库表是这种:table0101,table0102,table0103,.......各个表有同样的结构,我想用sql语句从查询分析器里导出来,有没有办法能够一次导出,语句要返回一个结果集.
用union all就能够实现:
select * from table0101
union all
select * from table0102
union all
select * from table0103
union all
select * from table0104
....
❽ sql多表联查实例
sql多表联查实例
下面提供四款sql多表关联查询的实例,个个效率不一样。
select
*
from
order_info
as
a
,ivrlog4ivrdlvinst
as
b
where
(a.saleorder=b.ext1_skill
and
b.start_date=@date1
and
se_id='55'
and
b.ext1_skill!='')
and
convert(varchar(10),a.instime,112)=@date2
and
max(a.instime)
方法二
select
*
from
order_info
as
a
where
a.saleorder=(
select
b.ext1_skill
from
ivrlog4ivrdlvinst
as
b
where
b.start_date=@date1
and
se_id='55'
and
b.ext1_skill!='')
and
convert(varchar(10),max(a.instime),112)=@date2
方法三
declare
@date1
varchar(20),
@date2
varchar(20)
set
@date1='20100812'
set
@date2='2010-08-12'
select
*
from
order_info
as
a
where
a.saleorder=
(select
b.ext1_skill
from
ivrlog4ivrdlvinst
as
b
where
b.start_date=@date1
and
se_id='55'
and
b.ext1_skill!='')
and
convert(varchar(10),a.instime,112)=@date2
and
max(a.instime)
方法四
select
b.caller,
b.start_date,
b.start_time,
b.ext1_skill,
c.deliveryno,
c.destroyresult,
c.deliverydate,
c.deliverytime,
c.arrangetime,
c.driverphone,
c.drivermobile,
a.servicedate,
a.servicetime,
a.workertel
from
order_info
as
a
,ivrlog4ivrdlvinst
as
b
,delivery_info
as
c
where
a.saleorder
in
(select
b.ext1_skill
from
ivrlog4ivrdlvinst
where
b.start_date=@date1
and
b.se_id='55'
and
b.ext1_skill!='')
and
convert(varchar(10),a.instime,112)=@date2
order
by
b.start_date
desc,
b.start_time
desc
❾ SQL语句:多表关联查询
在SQL里,常常需要对多个表关联起来进行查询,下面把我写的一个简单的多表关联的例子给大家看看,方法很简单,只要你学会原理就行:
select
o.id id,o.oid oid,o.number number,o.seOrder seOrder,o.endprice endprice,--第一个表的字段
d.uid uid,d.oDatetime oDatetime,--第二个表的字段
p.proname proname,p.spec spec,p.material material,p.price price,--第三个表的字段
c.price1 price1,c.price2 price2,c.price3 price3,c.price4 price4,c.price5 price5 --第四个表的字段
from
orderlist o --表一
left join procts p on o.pid=p.id --表二
left join orderForm d on d.id=o.oid --表三
left join classify c on p.bid=c.id --表四
--更多的表
order by o.id desc
这样,就把四个表关联起来查询了。如果有更多的表,可以一个一个的关联下去,不过我还是不希望关联的表太多.
❿ 多表查询关联,求sql语句
1、
select
表3.message
from
表3,表2
where
表3.name=表2.name
and
表2.id=
你给的id
2、select
表1.tel
from
表1
,表2
where
表1.id
=
表2.id
and
name
=
你给的name