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字符填充;