我的查询是这样的:
SELECT
id,
IF(allotment_type = 'Agent', COUNT(allotment_type), 0) AS total
FROM vip_allotment
WHERE
(SELECT
date_from,
date_to
FROM date_total
WHERE
date_from >= '$date_1'
AND date_to <= '$date_2' )
我有一个名为 vip_allotment
的表我希望结果基于另一个名为 date_total
的表上的日期,我想确定date_from is >= $variable and date_to <= $variable2
.
主要问题是我无法获得 table1
的结果基于table2
.
新编辑:
vip_allotment 字段为:
id
general_setting_id
ddate
timex
hotel_id
cr_by
emp_id
update_emp_id
notes
date_from
date_to
allotment_type
日期总计表:
id
date_from
date_to
最佳答案
SELECT
id,
IF(allotment_type = 'Agent', COUNT(allotment_type), 0) AS total
FROM vip_allotment va
LEFT JOIN date_total dt ON dt.date_from >= '$date_1' AND dt.date_to <= '$date_2'
WHERE
va.ddate >= dt.date_from
AND va.ddate <= dt.date_to
如您所见,WHERE
子句现在包含一个字段 va.ddate
,该字段根据连接结果进行检查,以查找 date_total< 的范围
基于参数。
它远非完美(例如,您可能会从 dt
获得多个结果),但只是想看看这是否是您想要做的事情的正确方向?
关于mysql - 根据表2得到表1的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46771837/