下面是一个简单的多表操作的例子:
aid | title | content | uid | pubtime |
---|---|---|---|---|
1 | 文章1 | 文章1正文内容... | 1 | 1278982219 |
2 | 文章2 | 文章2正文内容... | 1 | 1278985319 |
3 | 文章3 | 文章3正文内容... | 2 | 1279185319 |
uid | username | password | regdate | |
---|---|---|---|---|
1 | admin | b7e591c246d010bb2ccd77d52490c85e | admin@520mg.com | 1277992339 |
2 | 小明 | a193686a53e4de85ee3f2ff0576adf01 | xiao@163.com | 1278063917 |
3 | Jack | 0193686a35e4de85ee3f2ff0567adf490 | jack@gmail.com | 1278061380 |
当查询一篇文章的时候,一般会同时将对应的文章作者查询出来,通常的 SQL 语句为:
SELECT article.title,article.content,user.username FROM article, user WHERE article.aid=1 AND article.uid=user.uid
设置表别名后:
SELECT a.title,a.content,u.username FROM article AS a, user AS u where a.aid=1 and a.uid=u.uid
上述两条 SQL 语句查询结果是一样的:
title | content | username |
---|---|---|
文章1 | 文章1正文内容... | admin |
可以看出,使用表别名查询,可以使 SQL 变得简洁而更易书写和阅读,尤其在 SQL 比较复杂的情况下。除了使用别名来简化 SQL 外,有些时候例如一个表做自身关联时,必须要使用别名来当作两个表进行关联操作。
在 SQL 中,不仅可以指定表别名,同样还可以指定字段(列)别名,以解决多表之间复杂查询的问题,