gpt4 book ai didi

mysql - 嵌套 MySQL 查询中的优化可能吗?

转载 作者:行者123 更新时间:2023-11-29 06:53:45 24 4
gpt4 key购买 nike

我有下表(经过简化,删除了不需要的列):

packageTransactions

| memberID  |  subscriptionType |
| ==========|===================|
| 12345 | 101 |
| 12345 | 203 |
| 12346 | 101 |
| 12347 | 101 |
| 12348 | 101 |
| 12348 | 203 |
| 12349 | 203 |
| 12345 | 205 |

我想查询所有subscriptionType的记录= 101,但仅那些有 subscriptionType 记录的= 101 对于相同的 memberID存在。

因此,我使用:

SELECT memberID, subscriptionType
FROM packageTransactions
WHERE memberID IN
( SELECT memberID
FROM packageTransactions
WHERE subscriptionType = '101'
)
AND subscriptionType <> '101'
;

这给了我正在寻找的结果集:

| memberID  |  subscriptionType |
| ==========|===================|
| 12345 | 203 |
| 12348 | 203 |
| 12345 | 205 |

但是,当在具有几千条记录(在我的情况下为 +30k)的表上使用此查询时,返回结果需要几分钟时间。

所以我想知道,是否有“更好”/更有效的方式来查询数据?

最佳答案

试试这个:

SELECT pt2.memberID, pt2.subscriptionType
FROM packageTransactions pt1 inner join packageTransactions pt2
ON pt1.memberID = pt2.memberID
WHERE
pt1.subscriptionType = '101' AND pt2.subscriptionType <> '101'

;

关于mysql - 嵌套 MySQL 查询中的优化可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13967731/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com