简体   繁体   中英

how to optimize mysql query with inner join

select id from customer_details where store_client_id = 2 
And
    id  NOT IN (select customer_detail_id from  orders 
        where store_client_id = 2 and total_spent > 100 GROUP BY customer_detail_id ) 
Or
    id IN (select tcd.id from property_details as pd, customer_details as tcd 
        where pd.store_client_id = 2 and pd.customer_detail_id = tcd.customer_id and pd.property_key = 'Accepts Marketing' 
        and pd.property_value = 'no') 
And 
    id IN (select customer_detail_id from orders 
        where store_client_id = 2 GROUP BY customer_detail_id HAVING count(customer_detail_id) > 0 ) 
Or
    id IN (select tor.customer_detail_id from ordered_products as top, orders as tor 
        where tor.id = top.order_id and tor.store_client_id = 2 
        GROUP BY tor.customer_detail_id having sum(top.price) = 1)`

I have this mysql query with inner join so when it run in mysql server it slow down what is the issue cant find.
But after 4-5 minutes it return 15 000 records. This records is not an issue may be.
In some tutorial suggest to use Inner join, Left join,... But I don't know how to convert this query in Join clause. Any help will be appreciated. Thanks in advance.

首先请阅读关系模型优化选择语句

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM