2013-05-12 66 views
0

編寫查詢以顯示基於每個供應商的最高價格的圖書的書代碼,書名,供應商名稱和價格。解釋工作中的子查詢MySQL

我發現下面的查詢讓我正確的結果,但需要說明

select a.book_code,c.supplier_name,a.price from lms_book_details a 
    where a.price= (select max(price) from lms_book_details 
        where supplier_id= a.supplier_id) 
        order by book_code; 
    order by book_code; 
+0

你需要哪種解釋? – Quassnoi 2013-05-12 16:57:41

+0

這被稱爲相關子查詢。這很好,但它不太好。通常,不相關的子查詢表現更好。 – Strawberry 2013-05-12 16:58:28

回答

1

您的查詢將與maximum price獲取來自lms_book_details行。如果有多於一行(記錄)與maximum price那麼它將返回多於1,然後order by book_code