thinkphp中多表查询中防止数据重复sql语句

原创 2012年03月22日 14:10:23

下面先来看看例子:

    table
id name
1 a
2 b
3 c
4 c
5 b

库结构大概这样,这只是一个简单的例子,实际情况会复杂得多。

select *, count(distinct name) from table group by name

结果:

id name count(distinct name)
1 a 1
2 b 1
3 c 1

最后一 项是多余的,不用管就行了

tp2.0手册   搜索连贯操作 可看到相关的资料

SELECT cat_id, COUNT(*) AS goods_num FROM talble GROUP BY cat_id

$M = M('table');
$rs = $M->field(array('cat_id','count(*)'=>'goods_num'))->group('cat_id')->select();

echo $M->getLastSQL();
print_r($rs);

相关文章推荐

ThinkPHP去重 distinct和group by

近期项目中,遇到数据表去重要求,对于ThinkPHP的去重有了更加准确的认识和体会。 两种去重方式:$test_data = M('hot'); //实例化数据表 $data = $test_da...

ThinkPHP去除重复数据 合并重复字段

1 去除重复数据 distinct$result = M("order")->distinct(true)->select();2 合并重复字段 group$result = M("user")-...

thinkphp中两张表中不同字段的相同值——之if的判定

1.首先:列出两张表 2.我们要达到的操作是:循环表lbxz_user里的所有数据,如果lbxz_user里的name字段的值等于lbxz_member表里的mb_name字段值得任...

判断数组中是否有存在重复值

面试题:      已知有一长度为100的无序随机整型数组,且数值范围是[1,100],写一算法,判断数组中是否有存在重复值,要求,不得嵌套循环,不得使用递归。方法一:  1public bool C...
  • passball
  • passball
  • 2011年01月12日 16:03
  • 13150

ThinkPHP(8)——add()时覆盖重复数据

有时我们在插入数据时,需要覆盖重复数据。如果是sql语句,我们可以使用replace into代替insert into,它会自动判断主键或唯一约束的字段是否重复,重复则覆盖,不重复则插入在think...

ThinkPHP 防止表单重复提交的方法

ThinkPHP内置了表单令牌验证功能,可以有效防止表单的重复提交等安全防护。 表单令牌验证相关的配置参数有: 'TOKEN_ON'=>true,  // 是否开启令牌验证  'TOKE...

thinkphp多表查询两表有重复相同字段解决方法

框架:thinkphp 版本:3.2.3 内容:查询语句 解决问题:重复字段问题 $Data = M('a')->where($where) ...

查询和删除表中重复数据sql语句

  • 2012年04月10日 20:09
  • 30KB
  • 下载

SQL多表查询语句

  • 2012年12月25日 13:44
  • 30KB
  • 下载

Hibernate原生SQL多表查询字段名重复问题

Hibernate原生SQL查询多表关联,SQL语句要注意的问题 @for&ever 2009-9-4   系统环境: MySQL5.1 Hibernate3.3   有如下的假定: ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:thinkphp中多表查询中防止数据重复sql语句
举报原因:
原因补充:

(最多只允许输入30个字)