mysql使一列值相同_在mysql中,如何只选择每一列中具有相同值而...

我不是真正的后端开发人员,所以我对sql的经验很少.我需要从表格中过滤“每月购买量”,即客户将在同一笔交易中购买要在不同日期发货的产品.

假设我在桌子上有这个:

transactionID | deliveryDate

------------- | ------------

1 | 2013-11-24

1 | 2013-11-24

2 | 2013-11-26

3 | 2013-11-10

3 | 2013-11-17

3 | 2013-11-24

4 | 2013-11-10

4 | 2013-11-10

4 | 2013-11-17

4 | 2013-11-17

我想要这样的结果:

transactionID | deliveryDate

------------- | ------------

3 | 2013-11-20

3 | 2013-11-22

3 | 2013-11-24

4 | 2013-11-10

4 | 2013-11-10

4 | 2013-11-17

4 | 2013-11-17

交易3和4是唯一符合我的条件的交易,因为交易1,尽管同一笔交易中有多次购买,但交货日期是相同的.交易2不适合我需要购买多个物品.

因此,基本上,我需要选择每一行,其中transactionID的计数大于一,但是仅在其中还有多个不同的deliveryDate的情况下.

到目前为止,我尝试过的是:

SELECT *

FROM myTable

WHERE `transactionID` IN

( SELECT `transactionID`

FROM `myTable`

GROUP BY `transactionID`

HAVING COUNT(*) > 1

)

ORDER BY `transactionID`

我知道我只是在同一笔交易中有多个购买项时进行过滤,但是我真的不知道该如何遵循.此外,由于有更多的列,所以此查询的速度非常慢,因此我认为某些人可能会指出一个更好的方向.

谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值