나는 다음 표 (간체, 제거 불필요한 열)이 있습니다중첩 된 MySQL 쿼리에서 최적화가 가능합니까?
packageTransactions을
| memberID | subscriptionType |
| ==========|===================|
| 12345 | 101 |
| 12345 | 203 |
| 12346 | 101 |
| 12347 | 101 |
| 12348 | 101 |
| 12348 | 203 |
| 12349 | 203 |
| 12345 | 205 |
내가 하지subscriptionType
= 101, 만 그 곳에있는 모든 기록을 조회 할 subscriptionType
= 101에 해당하는 레코드가 memberID
존재합니다.
따라서 나는 사용 : 몇 thousend 기록이있는 테이블에이 쿼리를 사용하는 경우, 그러나
| memberID | subscriptionType |
| ==========|===================|
| 12345 | 203 |
| 12348 | 203 |
| 12345 | 205 |
(: 나에게 내가 찾고 결과 집합을 제공
SELECT memberID, subscriptionType
FROM packageTransactions
WHERE memberID IN
(SELECT memberID
FROM packageTransactions
WHERE subscriptionType = '101'
)
AND subscriptionType <> '101'
;
+ 30k), 결과를 반환하는 데 몇 분이 걸립니다.
"better"/more 효율적인 방법으로 데이터를 쿼리하는 것이 궁금합니다.
SELECT MEMBERID, subscriptionType입니다. 이것을 시도 했습니까? 왜 당신은 어디에서 사용하고 있습니까? –
죄송합니다, 영어는 제 모국어가 아닙니다. 나는 그 질문에서 더 명확하게하려고 노력했다. 왜냐하면'memberID' 만 얻고 싶기 때문에'subscriptionType' = '101'레코드도 일반적으로 존재합니다. 예를 들어 memberID 12349는'subscriptionType = '101'에 대한 레코드가 없으므로 ** not **를 반환해야합니다. – eyecatchUp