我需要從最後一次交付中選擇員工標識,除非狀態= OTD來自hta表。然後,我需要從員工表中獲取所有剩餘的員工ID並顯示這些結果。不幸的是,otd狀態的員工也在員工表中。我可以編寫一個將返回這些結果的查詢嗎?或者我必須以不同的方式做?如果是的話,你可以指導我。限制表中的查詢結果加入
SELECT h.employee_id
, MAX(h.delivery_date)
, e.employee_first
, h.status
FROM TABLE_HTA h
RIGHT
JOIN TABLE_EMPLOYEES e
ON h.employee_id = e.employee_id
WHERE h.status <> "OTD"
GROUP
BY h.employee_id
ORDER
BY MAX(h.delivery_date) ASC
Table_hta<br>
order_id | employee_id | status | delivery_date |<br>
1 | 23 | OTD | 1/1/15 3:45pm<br>
2 | 24 |DELIVER | 1/1/15 3:50pm<br>
3 | 25 |DELIVER | 1/1/15 3:51pm<br>
<br>
Table_employees<br>
employee_id | employee_first |<br>
23 Bob<br>
24 James<br>
25 Henry<br>
26 Sally<br>
Results<br>
employee_id | employee_first | delivery_date<br>
26 |Sally<br>
24 |James |1/1/15 3:50pm<br>
25 |James |1/1/15 3:51pm<br>
Sally被列入,因爲她沒有OTD狀態。鮑勃被排除了,因爲他有狀態OTD。
請發佈一些示例數據(可能是5-10行)以及您的預期結果,因爲它可以幫助其他用戶看到您想要完成的任務。如果您雄心勃勃,[SQL小提琴](http://www.sqlfiddle.com)通常最有幫助。 – AdamMc331
是的。適當的DDL會很好。此外,僅供參考,目前在SO上的[MYSQL]標籤下,大約有1700次出現「RIGHT JOIN」,而「LEFT JOIN」大約有38,000次出現。只是說' – Strawberry
它被標記爲PHP和MySQL只是說' – David