在出現這個問題之前,我一直在為考試而學習
這些是表格(主鍵以粗體顯示):
Employee(身份證,姓名,電子郵件地址),Email(emailId、senderId、receiverId、主題)EmailDetails( emailId , 日期, 狀態)
該問題指出:
- 如果兩個員工互相發送電子郵件,則他們是連接的
- (即每位員工至少應向其他員工發送一封或多封電子郵件)。
- 查找所有連接的員工對。
- (回傳他們的 ID)。
有人可以幫我解決這個問題嗎?
uj5u.com熱心網友回復:
您只能檢查電子郵件表,如果一個 id 是發件人和收件人
SELECT DISTINCT senderID,receiverID FROM Email e
WHERE EXISTS (SELECT 1
FROM Email
WHERE receiverID = e.senderID AND senderIF = e.receiverID))
uj5u.com熱心網友回復:
這會給你所有的配對,所以 (bob, kate) 和 (kate, bob)。
select distinct e1.senderID, e1.receiverID
from email e1 join email e2
on e1.receiverID = e2.senderID and e2.receiverID = e1.senderID;
要僅獲得其中一個,請在最后添加一個條件:
where e1.senderId > e1.receiverID
uj5u.com熱心網友回復:
為了能夠正確回答這個問題,您需要標記給定表中的哪些列用作外鍵,即它們的值彼此對應。員工表中是否有 senderid 和 receiverid id?如果是這樣:
select emp1.id as sender, emp2.id as receiver from employee emp1 join email e on emp1.id = e.senderid join employee emp2 on emp2.id = e.receiverid
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/497862.html
