【发布时间】:2021-10-19 07:22:41
【问题描述】:
目前我有 2 个表,一个列表表和一个日志表。通过以下查询,我试图获取特定日期的产品列表,并返回正确的输出。
with X as (
select
l.*,
(select status_from from logs where logs.refno = l.refno and logs.logtime >= '2021-10-01' order by logs.logtime limit 1) logstat
from listings l
where l.added_date < '2021-10-01'
)
, Y as (select X.*, ifnull(X.logstat, X.status) stat from X)
SELECT
status.text,
COUNT(Y.id) AS c
from status
left join Y on Y.stat = status.code
group by status.code, status.text;
这给出了这样的输出:
在这里,我已按 1 个日期过滤查询,在本例中为 2021-10-01。输出应如下所示:
| Publish | Action | Let | Sold | Draft |
|---|---|---|---|---|
| 0 | 3 | 0 | 1 | 1 |
| 0 | 2 | 0 | 1 | 2 |
Dbfiddle:https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=5e0b8d484a41ac9104d0fb002e7f9a3c
【问题讨论】:
标签: mysql