পছন্দসই ফলাফলগুলি উত্থাপনের জন্য এমন কয়েকটি পরিস্থিতিতে রয়েছে যা বেশ কয়েকটি টেবিলের সাথে সাব-সিলেক্ট স্টেটমেন্টের সাথে একত্রে জড়িত হওয়ার দরকার রয়েছে big
আমার প্রশ্নটি হ'ল, আমরা কি একাধিক ছোট প্রশ্ন ব্যবহার করে বিবেচনা করব এবং ডিবি কে একাধিক কল করে জিজ্ঞাসা করে অ্যাপ্লিকেশন স্তরটিতে যৌক্তিক ক্রিয়াকলাপগুলি আনব বা সেগুলি একবারে চালিয়ে নেওয়া আরও ভাল?
উদাহরণস্বরূপ নিম্নলিখিত প্রশ্নটি বিবেচনা করুন:
SELECT *
FROM `users`
WHERE `user_id` IN (SELECT f2.`friend_user_id`
FROM `friends` AS f1
INNER JOIN `friends` AS f2
ON f1.`friend_user_id` = f2.`user_id`
WHERE f2.`is_page` = 0
AND f1.`user_id` = "%1$d"
AND f2.`friend_user_id` != "%1$d"
AND f2.`friend_user_id` NOT IN (SELECT `friend_user_id`
FROM `friends`
WHERE `user_id` = "%1$d"))
AND `user_id` NOT IN (SELECT `user_id`
FROM `friend_requests`
WHERE `friend_user_id` = "%1$d")
AND `user_image` IS NOT NULL
ORDER BY RAND()
LIMIT %2$d
এটি করার সর্বোত্তম উপায় কী?