नहीं, यह सही तरीका नहीं है।
मेरा मानना है कि आप इस तरह के एक प्रश्न के बारे में बात कर रहे हैं:
SELECT product.*, MIN(qty)
FROM product
GROUP BY
type
ORDER BY
qty
आप यहां जो कर रहे हैं वह MySQL
का उपयोग कर रहा है का एक्सटेंशन जो आपको GROUP BY
में असंगठित/असमूहीकृत कॉलम चुनने की अनुमति देता है क्वेरी।
इसका उपयोग ज्यादातर JOIN
. दोनों वाले प्रश्नों में किया जाता है और एक GROUP BY
PRIMARY KEY
. पर , इस तरह:
SELECT order.id, order.customer, SUM(price)
FROM order
JOIN orderline
ON orderline.order_id = order.id
GROUP BY
order.id
यहां, order.customer
न तो समूहबद्ध है और न ही एकत्रित, लेकिन चूंकि आप order.id
. पर समूह बना रहे हैं , प्रत्येक समूह में समान मान होने की गारंटी है।
आपके मामले में, qty
. के सभी मान समूह के भीतर अलग-अलग मान हैं।
इसकी गारंटी नहीं है कि समूह के भीतर इंजन किस रिकॉर्ड से मूल्य लेगा।
आपको यह करना चाहिए:
SELECT p.*
FROM (
SELECT DISTINCT type
FROM product p
) pd
JOIN p
ON p.id =
(
SELECT pi.id
FROM product pi
WHERE pi.type = pd.type
ORDER BY
type, qty, id
LIMIT 1
)
यदि आप product (type, qty, id)
. पर एक अनुक्रमणिका बनाते हैं , यह क्वेरी तेजी से काम करेगी।