【问题标题】:mySQL query with join and multiple unions带有连接和多个联合的 mySQL 查询
【发布时间】:2016-11-04 21:41:35
【问题描述】:

我有一个连接两个满足条件的表的查询:

SELECT * FROM order
JOIN reservations
ON order.reservationsID=reservations.ID
WHERE posname='Fixed'

从这个结果中,我需要从预订表中过滤到某些日期范围。如果我要单独查询预订表(有年、月、块列),我会得到以下查询:

(SELECT * FROM reservations 
WHERE YEAR=2016 AND MONTH=11 AND BLOCK>1)
UNION
(SELECT * FROM reservations 
WHERE YEAR=2016 AND MONTH>11)
UNION
(SELECT * FROM reservations 
WHERE YEAR>2016)

如何将这两个查询合并为一个?任何指导将不胜感激。

【问题讨论】:

  • 请注意,order 是 MySQL 中的保留字 - 所以你并没有完全告诉我们真相 ;-)

标签: mysql


【解决方案1】:

试试这个:

SELECT * FROM [order]
JOIN reservations ON [order].reservationsID=reservations.ID
WHERE posname='Fixed' AND ( (YEAR=2016 AND MONTH=11 AND BLOCK>1) OR
                            (YEAR=2016 AND MONTH>11) OR
                            (YEAR>2016) )

【讨论】:

  • 谢谢!这似乎运作良好。我想我试图让它变得比需要的更困难。
猜你喜欢
  • 2015-02-22
  • 1970-01-01
  • 1970-01-01
  • 2010-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-21
相关资源
最近更新 更多