SELECT c.*, d.*
FROM country c
INNER JOIN ducks d
ON d.id = --- guessing the ducks Primary Key here
( SELECT dd.id --- and here
FROM ducks dd
WHERE c.id = dd.country_id
ORDER BY dd.rating DESC
LIMIT 1
)
(country_id, rating, id)
. पर एक अनुक्रमणिका MyISAM तालिका या (country_id, rating)
. के लिए InnoDB तालिका के लिए, मदद करेगा।
यह क्वेरी केवल एक duck
दिखाएगी प्रति देश, यहां तक कि एक से अधिक की रेटिंग समान होने पर भी। यदि आप चाहते हैं कि बत्तख बंधी हुई रेटिंग के साथ दिखाई दें, तो @imm के GROUP BY
का उपयोग करें उत्तर।