2010-10-23 59 views
2

我有兩個表,其中一個包含一個項目列表,其中包含一些重要屬性的項目watch_list,另一個項目只是一個名爲price_history的價格列表。我想要做的是將10個最低價格組合成一個包含group_concat操作的列,然後創建一個包含watch_list的項目屬性的行以及watch_list中每個項目的10個最低價格。首先,我嘗試了連接,但後來我意識到發生錯誤順序的操作,因此無法通過連接操作獲得所需的結果。然後我嘗試了一些顯而易見的事情,只是詢問watch_list中的每一行price_history,並將所有東西都粘在了可以工作但似乎效率很低的主機環境中。現在我有下面的查詢,它看起來應該可以工作,但它沒有給我我想要的結果。我想知道什麼是錯用下面的語句:帶有group_concat的sqlite子查詢作爲select語句中的列

select w.asin,w.title, 
    (select group_concat(lowest_used_price) from price_history as p 
    where p.asin=w.asin limit 10) 
    as lowest_used 
    from watch_list as w 

基本上我希望發生的limit操作group_concat做任何事情之前,但我想不出一個SQL語句,將做到這一點的。

回答

3

沒有人介意有人曾經說過「計算機科學中的所有問題都可以通過另一種間接方式來解決」。並在這種情況下額外的select子查詢伎倆:

select w.asin,w.title, 
    (select group_concat(lowest_used_price) 
    from (select lowest_used_price from price_history as p 
     where p.asin=w.asin limit 10)) as lowest_used 
    from watch_list as w