在SQL语言中,join什么时候用,什么时候不用啊?请高手举例解释一下。谢谢
3个回答
展开全部
JOIN 在内连接时,可以不使用,其它类型连接必须使用。
如SELECT * FROM TABLEA INNER JOIN TABLEB ON A.ID=B.ID
可以这样写:
SELECT * FROM TABLEA,TABLEB WHERE A.ID=B.ID
JOIN 有以下几种类型:
INNER(内连接)
指定返回每对匹配的行。废弃两个表中不匹配的行。如果未指定联接类型,则这是默认设置。
FULL(全连接)
指定在结果集中包含左表或右表中不满足联接条件的行,并将对应于另一个表的输出列设为 NULL。这是对通常由 INNERJOIN返回的所有行的补充。
LEFT(左连接)
指定在结果集中包含左表中所有不满足联接条件的行,且在由内联接返回所有的行之外,将另外一个表的输出列设为 NULL。
RIGHT(右连接)
指定在结果集中包含右表中所有不满足联接条件的行,且在由内联接返回的所有行之外,将与另外一个表对应的输出列设为 NULL。
CROSS JOIN(交叉连接)
得到连接表符合WHERE 子句的条件的记录数的乘积,即第一个表的每一个记录都与别一个表的所有记录连接出一个新的记录。
交叉连接不带ON子句,其它连接必须有ON子句
如SELECT * FROM TABLEA INNER JOIN TABLEB ON A.ID=B.ID
可以这样写:
SELECT * FROM TABLEA,TABLEB WHERE A.ID=B.ID
JOIN 有以下几种类型:
INNER(内连接)
指定返回每对匹配的行。废弃两个表中不匹配的行。如果未指定联接类型,则这是默认设置。
FULL(全连接)
指定在结果集中包含左表或右表中不满足联接条件的行,并将对应于另一个表的输出列设为 NULL。这是对通常由 INNERJOIN返回的所有行的补充。
LEFT(左连接)
指定在结果集中包含左表中所有不满足联接条件的行,且在由内联接返回所有的行之外,将另外一个表的输出列设为 NULL。
RIGHT(右连接)
指定在结果集中包含右表中所有不满足联接条件的行,且在由内联接返回的所有行之外,将与另外一个表对应的输出列设为 NULL。
CROSS JOIN(交叉连接)
得到连接表符合WHERE 子句的条件的记录数的乘积,即第一个表的每一个记录都与别一个表的所有记录连接出一个新的记录。
交叉连接不带ON子句,其它连接必须有ON子句
展开全部
join 分左连接和右连接及相同连接三种 left join ,right join ,inner join
如A表有:id\姓名\地址\学历ID,
B表有:学历ID\学历名称
现在想查询 表A中姓名和表B中的学历名称
select A.姓名,B.学历名称 from A left join B on A.学历ID=B.学历ID
如A表有:id\姓名\地址\学历ID,
B表有:学历ID\学历名称
现在想查询 表A中姓名和表B中的学历名称
select A.姓名,B.学历名称 from A left join B on A.学历ID=B.学历ID
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
需要连表时使用,不过join有分三种连接,不同的情况使用不同的连接方式
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询