【发布时间】:2015-11-17 00:54:37
【问题描述】:
我有桌子:
*ruletbl
| id_rule | code_rule |
-----------------------
| 1 | R01 |
| 2 | R01 |
| 3 | R01 |
| 4 | R02 |
| 5 | R02 |
| 6 | R02 |
-----------------------
和第二张表 *detailRulebl:
| id_detailRule | id_rule | id_sym | codeDetailrule | orderNO |
---------------------------------------------------------------------
| 1 | 1 | 1 | R01#1 | 1 |
| 2 | 1 | 2 | R01#1 | 1 |
| 3 | 1 | 3 | R01#1 | 1 |
| 4 | 2 | 4 | R01#2 | 2 |
| 5 | 2 | 1 | R01#2 | 2 |
| 6 | 2 | 2 | R01#2 | 2 |
| 7 | 3 | 4 | R01#3 | 3 |
| 8 | 3 | 3 | R01#3 | 3 |
| 9 | 3 | 1 | R01#3 | 3 |
| 10 | 4 | 6 | R02#1 | 1 |
| 11 | 4 | 7 | R02#1 | 1 |
| 12 | 4 | 5 | R02#1 | 1 |
| 13 | 5 | 4 | R02#2 | 2 |
| 14 | 5 | 1 | R02#2 | 2 |
| 15 | 5 | 2 | R02#2 | 2 |
| 16 | 5 | 8 | R02#2 | 2 |
| 17 | 6 | 6 | R02#3 | 3 |
| 18 | 6 | 8 | R02#3 | 3 |
| 19 | 6 | 2 | R02#3 | 3 |
| 20 | 6 | 1 | R02#3 | 3 |
--------------------------------------------------------------------
如果“codeDetailrule 与“R01#1 和 R01#2”相同,则我想从输入一个数组 (1,2) 和 MIN(orderNo) 的那些表中选择“and”条件,因此首先使用“and”排除" 条件喜欢这个代码:
SELECT codeDetailrule, orderNo
FROM detailRuletbl
WHERE id_sym
IN ( 1,2 )
GROUP BY codeDetailrule
HAVING COUNT( * ) =2
结果:
| codeDetailRule | orderNo |
----------------------------
| R01#1 | 1 |
| R01#2 | 2 |
| R02#2 | 2 |
| R02#3 | 3 |
----------------------------
如果我们使用 MIN(orderNO) 结果应该是:
| codeDetailRule | orderNo |
----------------------------
| R01#1 | 1 |----------------------> this is my expect result
| R02#2 | 2 |
----------------------------
谁能帮助我?
到目前为止,这是我的试验:
SELECT codeDetailrule, orderNo
FROM detailRuletbl
WHERE id_sym
IN ( 1,2 )
GROUP BY codeDetailrule
HAVING COUNT( * ) =2
AND orderNo= ( SELECT MIN( X.orderNo) FROM detailRuletbl,
(SELECT codeDetailrule, orderNoFROM detailRuletbl
WHERE id_sym IN ( 1, 2 ) GROUP BY codeDetailrule
HAVING COUNT( * ) =2
)
AS X
)
结果:
| codeDetailrule | orderNo |
-------------------------------
| R01#1 | 1 |
-------------------------------
有人有什么想法吗?请帮忙。
【问题讨论】:
-
@rlanvin...请检查我的更新问题,这是我的试用代码...请帮助我。谢谢
-
为什么
R02#3 | 3在结果中被淘汰了?其背后的逻辑是什么? -
R01#2 和 R02#3 被淘汰....逻辑是: MIN(orderNo) 具有相同的 codeDetailrule 像 "R01#1 和 R01#2 它们是相同的 code_rule 在第一个table *ruletable. 和 R02#2 和 R02#3 也是一样的...
标签: mysql select datatable min