联接与多张表的操作

来源:互联网 发布:如何做好商务工作 知乎 编辑:程序博客网 时间:2024/05/22 01:39

1 AS的作用

as能把select的查询结果填入新表

create table profession( id int(11) not null auto_increment primary key,  profession varchar(20)) asselect profession from my_contactsgroup by professionorder by profession;

2 列的别名

列名改变了查询结果中的列名,但并未改变来源列的名称。别名只是临时的。

3 表的别名

与列的别名相同,as可以省略

select profession (as) mc_prof from my_contacts (as) mcgroup by professionorder by profession;

4 联接

1 交叉联接

交叉联接(cross join)也称为笛卡尔积、交叉积,返回两张表的每一行相差的结果

select t.toy,b.boyfrom toys as tcross joinboys as b;/*cross join 可以省略*/

2 内联接

交叉联接是内联接的一种。内联接就是通过查询中的条件移除了某些结果数据行的交叉连接。

select somecolumnsfrom table1 inner jointable2on somecondition;/*on可以换为where*/

根据条件的不同可以分为相等联接、不等联接和自然联接。

/*相等联接*/select t.toy,b.boyfrom toys as tinner joinboys as bon b.toy_id=t.toy_id;

不等联接的条件为“<>”
自然联接是不使用“on”字句的内联接。只有在联接的列在两张表中的名称都相同时才有用。

select t.toy,b.boyfrom toys as tnatural joinboys as b;
0 0
原创粉丝点击