请通过以下问题mSQL的连接的查询
帮助排结果我有一个表:人
Id Leader Name1 Name2 StartDate EndDate
123 1 Person1 2013-02-11 2013-02-17
123 0 Person2 2013-02-13 2013-02-13
123 0 Person3 2013-02-13 2013-02-13
我有一个QUERY1
(SELECT t1.Id, t1.Name1, t1.Name2
FROM `dbo`.`people` t1
WHERE t1.StartDate >= '2013-02-11'
AND t1.Leader = 1)
UNION
(SELECT t2.Id, t2.Name1, t1.Name2
FROM `dbo`.`people` t2
WHERE t2.StartDate >= '2013-02-11'
AND t2.Leader = 0)
这将返回
Id Name1 Name2
123, Person1
我有一个查询2
(SELECT t1.Id, t1.Name1, t1.Name2
FROM `dbo`.`people` t1
WHERE t1.StartDate >= '2013-02-13'
AND t1.Leader = 1)
UNION
(SELECT t2.Id, t2.Name1, t1.Name2
FROM `dbo`.`people` t2
WHERE t2.StartDate >= '2013-02-13'
AND t2.Leader = 0)
这将返回
Id Name1 Name2
123, Person1
123, Person2
123, Person3
我需要为2012-02-11的结果显示
Id Name1 Name2
123, Person1 null
并为2012-02-13显示
Id Name1 Name2
123, Person1 Person2
123, Person1 Person3
您是否尝试过'CROSS JOIN'而不是'UNION'? – luckystars 2013-02-09 09:06:16
关于你想要的结果的开始和结束日期? – 2013-02-09 09:06:28
嗨Raheen,几乎有但Id和Leader不相关,因此不能使用ON pl.leader = p.id. Id是一个计数器,可以是任何值,Leader是一个指标,只能是0或1。谢谢 – user1254513 2013-02-09 09:39:47