ऐसी परिस्थितियां हैं जिनके लिए वांछित परिणामों का उत्पादन करने के लिए उप-चयन कथनों के साथ कई तालिकाओं को मिलाकर वास्तव में बड़ी क्वेरी की आवश्यकता होती है।
मेरा प्रश्न यह है कि, क्या हमें कई छोटे प्रश्नों का उपयोग करने पर विचार करना चाहिए और डीबी को एक से अधिक कॉल में क्वेरी करके तार्किक संचालन को अनुप्रयोग परत में लाना चाहिए या उन सभी को एक बार में लेना बेहतर है?
उदाहरण के लिए निम्नलिखित प्रश्न पर विचार करें:
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
इसे करने का सबसे अच्छा तरीका क्या है?