我有一個關於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