2
select hotel.*, hotels.type 
from pe,se 
where p.hotel_Id = s.S_Id 
  and Type="";

我得到的输出是

 pid     SId     PName     PPlan     PMethod     PDate     numberOfParents     SType    
 ---------------------  ----------  -------------------------  -------------------------  ---------------------------  -------------------------  ------------------  ------------ 
 4                      2           kjbkjbjkbk                 jkbjbkbl                   lkblknl                      10/5/2012                  234                 abc       
 6                      2           dfvrvt                     rvrtv                      rvrtvrt                      1/1/2012                   3                   abc       
 9                      2           er                         

现在我的问题是我想要查询,以便我的输出将以这样的方式进行,即数据适用于一系列日期。例如,2012 年 8 月 9 日至 2012 年 10 月 12 日。

另外,我可以使用 >= 和 <= 为日期范围编写 mysql 查询。但我无法在当前查询中组合该日期范围部分。请帮我。

4

2 回答 2

1

WHERE在处理日期范围时,使用括号有助于使您的子句清晰:

SELECT p.*
  , s.Site_Type 
FROM parentengagement AS p
INNER JOIN site AS s ON p.Site_Id = s.Site_Id 
  AND s.Site_Type = 'County'
  AND
  (
     p.Parent_Engagement_Date >= '2012-08-09'
       AND p.Parent_Engagement_Date <= '2012-10-12'
  )

我还建议使用INNER JOIN语法而不是关于连接FROM table1, table2 的良好视觉表示。


来自评论的更新: OP 想为每个站点汇总 numberOfparents 。

SELECT s.Site_Type 
   , SUM(p.NumberOfParents)
FROM parentengagement AS p
INNER JOIN site AS s ON p.Site_Id = s.Site_Id 
  AND s.Site_Type = 'County'
  AND
  (
     p.Parent_Engagement_Date >= '2012-08-09'
       AND p.Parent_Engagement_Date <= '2012-10-12'
  )
GROUP BY s.Site_Type
于 2012-10-30T21:51:27.647 回答
1

如果您只是想运行相同的查询但将其限制在一个日期范围内,那么您应该能够在同一个查询中执行此操作:

select parentengagement.*, site.Site_Type 
from parentengagement,site 
where 
    parentengagement.Site_Id = site.Site_Id and 
    site.Site_Type="County" and
    parentengagement.Parent_Engagement_Date > '2012-10-30' and
    parentengagement.Parent_Engagement_Date <= '2012-10-31'
于 2012-10-30T21:53:26.217 回答