免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3008 | 回复: 6
打印 上一主题 下一主题

MySQL 子查询如何对两个值进行比较? [复制链接]

hackall 该用户已被删除
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-26 10:30 |只看该作者 |倒序浏览
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
2 [报告]
发表于 2009-04-26 19:40 |只看该作者
原帖由 hackall 于 2009-4-26 10:30 发表
我想在条件中加入一个子查询,要对两个值进行比较,该怎么写呢?下面这一句该如何修改呢

$condition .= ' AND (t.tid, t.cpid) = ANY (SELECT MAX(t2.tid), t2.cpid FROM '.$db_prefix.'threads t2
        ...


那个子查询,需要加到Where条件前 做为一个临时表。差不多是这样:
select t.f1,t.f2 from Tb1 t ,(SELECT MAX(t2.tid) tid, t2.cpid cpid FROM '.$db_prefix.'threads ) t2  where t.tid=t2.tid and t.cpid=t2.cpid;

重新拼一下你的SQL吧。
hackall 该用户已被删除
3 [报告]
发表于 2009-04-26 19:50 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
4 [报告]
发表于 2009-04-27 16:42 |只看该作者
如果搞明白数据变化关系了,还是很容易搞定的。
你可以把数据贴到这里,表结构情况都贴一下,有可能就能更快的搞定了。
hackall 该用户已被删除
5 [报告]
发表于 2009-04-27 17:16 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
6 [报告]
发表于 2009-04-27 17:55 |只看该作者
你前两个查询应该没问题吧。
第三个参考下:
select tid,cpid from threads where  cpid!=0 and cpid in (select tid from threads where cpid=0) group by cpid; 根据你的SQL猜出来的意思,不知道是不是达到你的标准。
hackall 该用户已被删除
7 [报告]
发表于 2009-04-27 18:21 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP