gpt4 book ai didi

MySQL右外连接查询

转载 作者:行者123 更新时间:2023-11-29 07:47:43 25 4
gpt4 key购买 nike

我有一个关于 MySQL 中查询的查询。

我有 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

enter image description here

现在我的疑问:

  • 有什么方法可以让我为上述查询中的所有 13 行填充名称吗?

  • 如果有 2 名销售代表,我想使用 IN 子句并期望总共 26 行 - 每个销售人员 13 行(即使没有该人的记录,我仍然希望查看 13 行空值),以及 3 名销售代表的 39 行

这些可以在 MySql 中完成吗?如果可以,有人能给我指出正确的方向吗?

最佳答案

您必须首先选择线路(不含customersServed),然后为customersServed 进行外部联接

类似的东西:

select records.name, records.datefield, IFNULL(salesRep.customersServed,0)
from (
select employeeId, name, datefield
from `SALES_REPRESENTATIVE`, fridays
where fridays.datefield between '2014-10-01' and '2014-12-31'
and employeeId in (...)
) as records
left outer join `Sales_Data` salesData on (salesData.employeeId = records.employeeId and salesData.reportDate = records.datefield)
order by records.name, records.datefield

关于MySQL右外连接查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27268938/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com