SQL语句的in的用法问题!

___紫菜 2014-05-05 04:32:22
SELECT count(*) FROM proof INNER JOIN template ON proof.TemplateID = template.TemplateID
INNER JOIN template_to_product_new ON template.TemplateID = template_to_product_new.TemplateID
INNER JOIN order_proof ON proof.idProof = order_proof.idProof LEFT JOIN(SELECT DISTINCT idProof FROM order_product_new
INNER JOIN order_main ON order_product_new.OrderID = order_main.OrderID AND order_product_new.Order_Version = order_main.Order_Version
WHERE order_main.OrderID = 'GB-00004-14'
AND order_product_new.idProduct in (1,2,7,40,345)
AND order_product_new.OptionID in (1,868,1,13,10)
AND order_product_new.idProof != 0) p ON proof.idProof = p.idProof
WHERE order_proof.OrderID = 'GB-00004-14'
AND template_to_product_new.idProduct in (1,2,7,40,345) AND p.idProof
IS NULL AND proof.isDeleted = 0 ORDER BY isApproved DESC, isApprovedDateTime DESC LIMIT 1;

这样是不对的!结果应该绝对是小于等于5的,但是这个结果是16。in的结果我是用sql在另一个表查询出来的,如果用循环就太慢了。请教大神该怎么处理这个!
...全文
345 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
benluobo 2014-05-06
  • 打赏
  • 举报
回复
贴出建表语句,以及测试数据
___紫菜 2014-05-06
  • 打赏
  • 举报
回复
引用 3 楼 ACMAIN_CHM 的回复:
建议提供测试数据。

建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
参考一下这个贴子的提问方式http://bbs.csdn.net/topics/320211382

1. 你的 create table xxx .. 语句
2. 你的 insert into xxx ... 语句
3. 结果是什么样,(并给以简单的算法描述)
4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)

这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。


不知道截图可不可以!数据库版本是5.5.28的。

比如:
现有三条一一对应的数据条件(1-A,2-B,3-C)[我这里可能会有更多对条件]
select *from A where id=1 and name='A'
select *from A where id=2 and name='B'
select *from A where id=3 and name='C'
所以结果最多不会超过3条
但是它查询出来的结果会远远多于三条
因为他可能会这样组合查询
select *from A where id=1 and name='B'
select *from A where id=2 and name='A'
select *from A where id=3 and name='A'
。。。等等
但是不知道改如何去修改了,本人也是上个月底第一次接触MySql数据库!


rucypli 2014-05-05
  • 打赏
  • 举报
回复
拆简单点 慢慢查
ACMAIN_CHM 2014-05-05
  • 打赏
  • 举报
回复
建议提供测试数据。 建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。 参考一下这个贴子的提问方式http://bbs.csdn.net/topics/320211382 1. 你的 create table xxx .. 语句 2. 你的 insert into xxx ... 语句 3. 结果是什么样,(并给以简单的算法描述) 4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL) 这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。
___紫菜 2014-05-05
  • 打赏
  • 举报
回复
引用 1 楼 WWWWA 的回复:
无法判断,没有结构、数据,只有拆分SQL语句,分别运行,看看问题出在什么地方
都是没有问题的。我的意思是in后面括号里面的值都是一一对应的,第一个括号的第一个值和第二个括号的第一个值和第三个括号的第一个值、、、就是说括号有多少条数据就有多少对组合,但是我觉得他不是这样处理的。
WWWWA 2014-05-05
  • 打赏
  • 举报
回复
无法判断,没有结构、数据,只有拆分SQL语句,分别运行,看看问题出在什么地方

56,678

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧