私は3つのテーブルを持っています:
mobile_users-id、、phone_type...
2+3。iphone_purchasesAND android_purchases- id、、、.. status_user_id
2 回以上購入したすべてのユーザーを取得しようとしています。落札されたものは、 によって識別されstatus > 0ます。mobile_usersまた、同じクエリでテーブル内のユーザーの合計数を取得しようとしています。
これは私が思いついたクエリです:
SELECT COUNT(*) AS `users`,
( SELECT COUNT(*)
FROM `mobile_users`
) AS `total`
FROM `mobile_users`
WHERE `mobile_users`.`phone_type` = 'iphone'
AND ( SELECT COUNT(*)
FROM ( SELECT `status`,
`user_id`
FROM `iphone_purchases`
UNION
SELECT `status`,
`user_id`
FROM `android_purchases`
) AS `purchase_list`
WHERE `purchase_list`.`status` > 0
AND `purchase_list`.`user_id` = `mobile_users`.`id`
) >= 2
非常に遅いので、改善する方法を見つけなければなりません。どんな助けでも大歓迎です!
編集: また、PHP でサブクエリを使用してこのクエリを作成していることも考慮する必要があります。WHERE ステートメントにさらに条件を付けて構築しています。