2010-10-12 152 views
1

我有一張表SIGNUPS,我註冊所有註冊到特定事件。現在,我想讓所有簽署了事件的人員都有一個額外的列狀態STATUS告訴用戶是否被實際接受(STATUS =「OK」)或者是否在等待列表中(STATUS =「WL」) 。我嘗試了所有其他的像這樣SQL:按日期過濾

SELECT *, IDUSER IN (SELECT IDUSER FROM SIGNUPS ORDER BY DATE ASC LIMIT 10) 
as STATUS from SIGNUPS WHERE IDEVENT = 1 

這應該返回狀態1誰簽署了第10個用戶和0。不幸的是,我得到一個Mysql錯誤,告訴我在子查詢中LIMIT還不被支持。

請問您能否提供另一種獲取相同信息的方式?

感謝

+0

我認爲'INNER JOIN'應該有所幫助。 – 2010-10-12 09:03:35

回答

0

像下面這樣會得到你所需要的 - 雖然我還沒有對一些樣本表進行了測試。子查詢查找最近十次註冊發生的日期,然後用於昏迷到當前行的日期。

select 
    s.*, 
    s.DATE > d.min_date_10 AS STATUS 
from SIGNUPS s 
    join (
     select MIN(DATE) AS min_date_10 from (
      select DATE from SIGNUPS order by DATE asc LIMIT 10 
     ) a 
    ) d 
WHERE IDEVENT = 1