UNION ALL与mysql中的where子句

时间:2014-06-11 09:05:32

标签: mysql union

我在mysql中有两个select语句。

对于两个union语句,我需要where两个带有select子句的mysql查询。 有什么想法吗?

EX:

(SELECT leases.id,leases.commencement as term, leases.commencement as start_date, leases.execution as execution
FROM `leases` leases.commencement > CURDATE())a
UNION ALL
(SELECT leases.id, leases.commencement as term, leases.commencement as start_date, leases.execution as execution
FROM `leases` leases.commencement BETWEEN '2014/01/01' and CURDATE()) b 
where a.commencement=b.commencement

1 个答案:

答案 0 :(得分:1)

我认为你不想做UNION。相反,你试图在两个派生表之间进行JOIN,如下所示

SELECT a.*,b.*
FROM
(
SELECT leases.id,
leases.commencement as term,
leases.commencement as start_date,
leases.execution as execution
FROM leases 
WHERE leases.commencement > CURDATE()
) a
JOIN
(
SELECT leases.id as ID1,
leases.commencement as term1,
leases.commencement as start_date1,
leases.execution as execution1
FROM leases 
WHERE leases.commencement 
BETWEEN '2014/01/01' and CURDATE()
)b ON a.commencement=b.commencement