用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2129|回复: 5
收起左侧

Hex进来一下,有个麻烦的问题问你一下

[复制链接]
发表于 2011-6-9 16:48:18 | 显示全部楼层 |阅读模式
SQL复制代码
SELECT *
FROM (`xh_yyyymm` , `xh_pact`
)
WHERE `xh_pact`.`id`
IN ('4df0739a83a2a', '4df07474af18b', '4df074ba0bbd0', '4df074cb8c07d', '4df074e0dbfd4', '4df0753a8665f', '4df0755391a21', '4df075986196f', '4df075b0aaceb', '4df0761c4357e','4df076268c0eb', '4df077066c0e0', '4df0773428f6f', '4df077d748343', '4df078530e782', '4df07903cfe56', '4df07d793dc9f', '4df07dac61283', '4df07e111b694'
)
AND `xh_yyyymm`.`pid`
IN ('4df0739a83a2a', '4df07474af18b', '4df074ba0bbd0', '4df074cb8c07d', '4df074e0dbfd4', '4df0753a8665f', '4df0755391a21', '4df075986196f', '4df075b0aaceb', '4df0761c4357e','4df076268c0eb', '4df077066c0e0', '4df0773428f6f', '4df077d748343', '4df078530e782', '4df07903cfe56', '4df07d793dc9f', '4df07dac61283', '4df07e111b694'
)
AND `xh_yyyymm`.`day` = '2011-06-09'
AND `abolish` =0
AND `status`
IN ( 1, 3 )
ORDER BY `day` , `mid` , `section`
LIMIT 10000
复制代码


我这个SQL哪儿有问题啊?出来的数据不对,啊
发表于 2011-6-9 18:43:10 | 显示全部楼层
你这样发,在厉害的人也不知道错在哪啊?
你能说明下你的需求,你的表结构等详细点的信息嘛?
 楼主| 发表于 2011-6-9 18:53:21 | 显示全部楼层
本帖最后由 xushre 于 2011-6-9 18:54 编辑

多表复合查询啊。
这是两个表:xh_pact, xh_yyyymm
要查询所有的内容用到的条件:
yyyymm.abolish==0,
yyyymm.day=2011-06-09或者yyyymm.day>2011-06-06 AND yyyymm.day<2011-06-30,
pact.mid=1
pact.status in ('1','3')

所有的条件都是AND。

其实就是复合查询,我不知道哪儿出错了,出来的数据不是我想要的,麻烦懂的朋友给个处理方法,最好给个完整的SQL语句,那就太感谢了!
 楼主| 发表于 2011-6-9 18:56:46 | 显示全部楼层
大家帮忙搞一下啊,在线等
发表于 2011-6-9 23:35:58 | 显示全部楼层
既然是联表查询是不是要找到两个表共同的字段啊?

`xh_pact`.`id`  =  `xh_yyyymm`.`pid`
当然,选择表的时候最好这样
SELECT * FROM  `xh_yyyymm` mm, `xh_pact` ct
WHERE  mm.pid = ct.id    ..........................
 楼主| 发表于 2011-6-10 11:50:13 | 显示全部楼层
可是出来的结果不对头啊。就算只取几个字段都会出错!不知道哪儿错了

本版积分规则