SQL多表查询语句怎么写
A表中有两个字段(id和md)B表中有三个字段(lx、md和km)写一个SQL查询语句,找出同时满足id=14和lx=15时km的最大值有劳各位朋友了!...
A表中有两个字段(id 和 md )
B表中有三个字段 (lx、 md 和 km )
写一个SQL查询语句,找出同时满足 id=14 和 lx=15时 km 的最大值
有劳各位朋友了! 展开
B表中有三个字段 (lx、 md 和 km )
写一个SQL查询语句,找出同时满足 id=14 和 lx=15时 km 的最大值
有劳各位朋友了! 展开
14个回答
展开全部
SQL中多表查询可以使用链接查询
1、union
union [all]
all:表示将查询的所有结果都合并到结果集中,若不加all会将重复的行只保留一行
--示例:
select * from a union select * from b
2、join
连接分为内连接、外连接、交叉连接
2.1、内连接 inner join (默认的连接方式)
只有至少有(指定的字段)一行的记录在两个查询表中都有记录,此时才有结果集。即 返回两个表之间的交集(相同字段的记录)
--示例:
SELECT * FROM `a` INNER JOIN b ON a.aaa = b.aaa
2.2、外连接
a、left join 左连接
返回查询表的记录,包含左边表的所有记录,如果左边表中的记录在右边表中没有对 应的记录,则所返回右边表的字段结果为空(差集)
--示例:
SELECT * FROM `a` LEFT JOIN `b` ON a.aaa = b.aaa
b、right join 右连接
与left join相反,查询的记录包含右边表的所有记录,如果右边表中的记录在左边表 中没有对应的记录,则返回左边表的字段值为空(差集)
--示例:
SELECT * FROM `b` LEFT JOIN `a` ON a.aaa = b.aaa
c、full join 全连接
返回左表和右表中的所有记录,即两表的数据全部显示
--示例:
select * from a full join b
3、cross in 交叉连接
不带where子句,返回两个表中所有笛卡尔积,记录数为a表和b表记录数的积
--示例:
SELECT * FROM `b` CROSS JOIN `a`
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2015-04-12 · 知道合伙人软件行家
关注
展开全部
根据你的查询结果要求,可以根据一下几个步骤确定多表查询语句的写法:
1、要显示所有学生信息、班级、年级等信息,则需以主表1为主记录,其他表通过外连接的方式进行关联;
2、LEFT JOIN 关键字会从左表那里返回所有的行,即使在右表中没有匹配的行,确定主表之后,其他关联表使用LEFT JOIN;
3、拼接SQL语句,需要确定关联字段主表1与表2的关联为主表1.studentid=表2.studentid,
主表1与表3的关联为主表1.gradId=表3.gradId,主表1与表4的关联为主表1.classId=表4.classId
4、具体语句为:
SELECT 表1.ID, 表2.STUDENTNAME,表3.GRADNAME,表4.CLASSNAME
FROM 表1
LEFT JOIN 表2 ON 表1.STUDENTID = 表2.STUDENTID
LEFT JOIN 表3 ON 表1.GRADID = 表3.GRADID
LEFT JOIN 表4 ON 表1.CLASSID= 表4.CLASSID
1、要显示所有学生信息、班级、年级等信息,则需以主表1为主记录,其他表通过外连接的方式进行关联;
2、LEFT JOIN 关键字会从左表那里返回所有的行,即使在右表中没有匹配的行,确定主表之后,其他关联表使用LEFT JOIN;
3、拼接SQL语句,需要确定关联字段主表1与表2的关联为主表1.studentid=表2.studentid,
主表1与表3的关联为主表1.gradId=表3.gradId,主表1与表4的关联为主表1.classId=表4.classId
4、具体语句为:
SELECT 表1.ID, 表2.STUDENTNAME,表3.GRADNAME,表4.CLASSNAME
FROM 表1
LEFT JOIN 表2 ON 表1.STUDENTID = 表2.STUDENTID
LEFT JOIN 表3 ON 表1.GRADID = 表3.GRADID
LEFT JOIN 表4 ON 表1.CLASSID= 表4.CLASSID
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select 表1.id ,
表2.studentName,
表3.gradName,
表4.className
from 表1,表2,表3,表4
where 表1.studentId=表2.studentId
and 表1.gradId=表3.gradId
and 表1.classId=表4.classId
表2.studentName,
表3.gradName,
表4.className
from 表1,表2,表3,表4
where 表1.studentId=表2.studentId
and 表1.gradId=表3.gradId
and 表1.classId=表4.classId
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询