我有一个关于MySQL中的查询的查询。MySQL的右外联接查询
我通过外键包含SalesRep的详细信息,如姓名,电子邮件等我与它有reportDate销售数据的另一个表,客户服务和链接指向SalesRep 2个表之一。有一点需要注意的是reportDate总是一个星期五。
所以要求是这样的:我需要找到一个13周的时间对销售代表的定列表的销售数据 - 以0为客户提供服务,如果在一个特定的周五没有数据。查询结果由Java应用程序使用,该应用程序依赖于每个销售代表的13行数据。
我创建了一个表,所有的周五日期填写并写了外部联接象下面这样:
select * from (
select name, customersServed, reportDate
from Sales_Data salesData
join `SALES_REPRESENTATIVE` salesRep on salesRep.`employeeId` = salesData.`employeeId`
where employeeId = 1
) as result
right outer join fridays on fridays.datefield = reportDate
where fridays.datefield between '2014-10-01' and '2014-12-31'
order by datefield
现在我的疑惑:
有什么办法我可以在上面的查询中获得所有13行的填充名称?
如果有两个销售代表,我想使用一个IN子句,总共有26行 - 每个销售人员13行(即使没有该人的记录,我仍然希望见第13行空的),和39 3个的销售代表
难道这MySql中完成,并且如果是这样,任何人都可以点我在正确的方向?
你试过从查询中删除此:'其中雇员= 1'?或者这样做:'where employeeId IN(1,2)'? – 2014-12-03 10:32:42
试过,但有一个正确的外连接,我不会得到26行(每个销售代表一个)。上面发布的查询只是为了获得所有13个星期五的一个用户的名字和0。 – prabugp 2014-12-03 10:38:41
如果你喜欢,可以考虑下列行为这个简单的两步过程:1.如果您还没有这样做,提供适当的DDL(和/或sqlfiddle),这样我们可以更容易复制的问题。 2.如果您还没有这样做,提供与在步骤1提供 – Strawberry 2014-12-03 11:02:17