sql级联查询 join

昨晚参加了一个公司的笔试,里面有一题考察了sql语句的书写,内容如下

假设有两个表tableA(id,name,……)tableB(id,……),tableA与tableB中的id一致,此时的查询语句可表示为:

select * from tableA join tableB on tableA.id=talbeB.id

 

问题延伸,若两个表中一致的字段名称不一致,怎么办,问题假设如下

假设有两个表tableA(id,name,……)tableB(sid,adress,tel,……),tableA id与tableB sid保持一致,此时查询条件可书写为:

select * from talbeA as id join tableB as id on tableA.id=tableB.sid

 

此时使用到join,join在sql中的用法是关联多个表查询;

left join,是以左表为基础,显示左表中的所有列,不管是否与关联条件相匹配,而右表中的数据只显示与关联条件相匹配的列,不匹配的列以NULL字符填充;

right join,是以右表为基础,显示右表中的所有列,不管是否与关联条件相匹配,而左表中的数据只显示与关联条件相匹配的列,不匹配的列以NULL字符填充;

 

posted @ 2015-10-21 10:17  followmyheart  Views(2783)  Comments(0Edit  收藏  举报