2009年4月20日星期一

Mysql里读取关联表数据的方法

比如有一个名为cainiao的数据库,现在要用SQL语句读取数据库中数据表articles和category的字段,即我们常常遇到的文章表和分类表字段的关联读取。

数据表articles中subject字段表示文章标题,summary字段表示内容简介;
数据表category中cname记录分类表的的菜单名;
articles表中的categoryid对应category表中的cid;

现在要在读取文章列表的时候同时显示所属分类的菜单名,这就要用到INNER JOIN,能够组合两个表中的记录,只要在两个数据表公共字段之中有相符的值。

构建SQL语句如下:
SELECT cainiao_articles.subject, cainiao_articles.summary, cainiao_category.cname
FROM cainiao_articles
INNER JOIN cainiao_categories WHERE cainiao_articles.categoryid = cainiao_category.cid

上面的SQL语句可以简写成:

SELECT a.subject, a.summary, c.cname
FROM cainiao_articles AS a
INNER JOIN cainiao_categories AS c WHERE a.categoryid = c.cid

其中的”WHERE“也可以用”ON“代替。

没有评论:

发表评论