文章表tp_article ~~~ CREATE TABLE `tp_article` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '文章ID', `cid` smallint(5) unsigned NOT NULL DEFAULT '1' COMMENT '分类ID', `title` varchar(255) NOT NULL DEFAULT '' COMMENT '标题', `content` longtext COMMENT '内容', PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='文章表'; ~~~ 文章分类表tp_cate ~~~ CREATE TABLE `tp_cate` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '分类ID', `pid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '上级分类ID', `name` varchar(50) NOT NULL COMMENT '分类名称', signed NOT NULL DEFAULT '0' COMMENT '排序', PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`) USING BTREE ) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COMMENT='分类表'; ~~~ 查询语句总结 1.JOIN查询 * INNER JOIN: 等同于 JOIN(默认的JOIN类型),如果表中有至少一个匹配,则返回行 * LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行 * RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行 * FULL JOIN: 只要其中一个表中存在匹配,就返回行 ~~~ $resul=Db::table('tp_Article') ->join('tp_cate', 'tp_article.cid=tp_cate.id') ->select(); //完整sql语句 SELECT * FROM `tp_Article` INNER JOIN `tp_cate` ON `tp_Article`.`cid`=`tp_cate`.`id` ~~~ 2.distinct查询 用于返回唯一不同的值 ~~~ $result= Db::table('tp_Article')->distinct(true)->field('title')->select(); //完整sql语句 SELECT DISTINCT `title` FROM `tp_Article` ~~~ 3.fetchSql查询 用于直接返回SQL语句 ~~~ $result = Db::table('tp_Article')->fetchSql(true)->find(1); 输入 string(53) "SELECT * FROM `tp_Article` WHERE `id` = 1 LIMIT 1 " ~~~ 4.getTableInfo查询 可以获取表信息,信息类型 包括 fields,type,bind,pk, ~~~ result= Db::getTableInfo('tp_Article'); //完整sql语句 SHOW COLUMNS FROM `tp_Article` ~~~ 5.view视图查询 视图查询可以实现不依赖数据库视图的多表查询,并不需要数据库支持视图 ~~~ result= Db::view('tp_Article',['id'=>'aid','cid','title']) ->view('tp_cate','id,pid,name','tp_cate.id=tp_Article.cid','LEFT') ->select(); ~~~