क्या हो रहा है इसके बारे में स्पष्टीकरण :
आप एक GROUP BY
का प्रदर्शन कर रहे हैं staff.department
. पर , हालांकि आपका SELECT
सूची में 2 नॉन-ग्रुपिंग कॉलम हैं staff.workerID, staff.name
. मानक sql में यह एक सिंटैक्स त्रुटि है, हालाँकि MySql इसकी अनुमति देता है इसलिए क्वेरी लेखकों को यह सुनिश्चित करना होगा कि वे ऐसी स्थितियों को स्वयं संभालें।
संदर्भ:http://dev.mysql.com /doc/refman/5.0/hi/group-by-handling.html
MySQL 5.1 से शुरू होकर गैर-मानक सुविधा को sql_mode में ONLY_FULL_GROUP_BY ध्वज सेट करके अक्षम किया जा सकता है:http://dev.mysql.com/doc/refman/5.6/hi/sql-mode.html#sqlmode_only_full_group_by
कैसे ठीक करें :
select staff.workerID, staff.name, staff.department, staff.salary
from staff
join (
select staff.department, max(staff.salary) AS biggest
from staff
group by staff.department
) t
on t.department = staff.department and t.biggest = staff.salary
आंतरिक क्वेरी में, GROUP BY का उपयोग करके विभाग और उसका उच्चतम वेतन प्राप्त करें। फिर बाहरी क्वेरी में उन परिणामों को मुख्य तालिका के साथ जोड़ दें जो आपको वांछित परिणाम देगा।