我有一个表SIGNUPS,我将所有注册注册到特定事件。现在,我想让所有注册参加活动的人都有一个额外的列状态STATUS告诉用户是否实际被接受(STATUS =“OK”)或者是否在等待列表中(STATUS =“WL”) 。我试过这样的事情
SELECT *, IDUSER IN (SELECT IDUSER FROM SIGNUPS ORDER BY DATE ASC LIMIT 10)
as STATUS from SIGNUPS WHERE IDEVENT = 1
这应该为注册的前10个用户返回STATUS 1,为所有其他用户返回0。不幸的是,我收到一个Mysql错误,告诉我子查询中的LIMIT尚不支持。
你能否提出另一种获取相同信息的方法?
由于
答案 0 :(得分:0)
以下内容将获得您所需要的内容 - 尽管我没有针对某些示例表进行测试。子查询找到最后十次注册的日期,然后用于comapre到当前行的日期。
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