Re: [SQL ] 高考SQL題目
※ 引述《kisha024 (4545454554)》之銘言:
: Member(mId, name, bDate, gender)
: //會員編號,姓名,生日,性別
: FriendRelation(mId, setDateTime, friend)
: //會員編號,加入日期時間,朋友編號
: Article(mId, aId, title, content, postDate)
: //會員編號,文章編號,標題,內容,張貼日期
: Reply(mId, aId, rTime, content, responder)
: //會員編號,文章編號,回覆日期時間,回覆內容,回覆者
: 1.列出被最多會員列為好友的會員之編號、姓名和生日
: 各位好 請問這題該如何寫呢?
: THX
看過去雖然有四個TABLE,實際語意讓我覺得只用到前兩個?
請問這題有很多小題嗎?
member and friend 這兩個table
FriendRelation.friend 內容應該會=mid 請問題目有說明嗎?
先找出 FriendRelation.friend 該欄位 最多被記錄的然後回頭查
FriendRelation出 mid 然後關連到 member 這樣會寫了嗎?
-- ORACLE --
SELECT T3.MID, T3.NAME, T3.BDATE, T2.FRIEND
FROM (SELECT *
FROM (SELECT T.FRIEND, COUNT(*) CNT
FROM FriendRelation T
GROUP BY T.FRIEND
ORDER BY CNT DESC) T1
WHERE ROWNUM = 1) T2,
Member T3
WHERE T3.MID = T2.FRIEND
-- MS-SQL --
SELECT T2.MID,T2.NAME,T2.BDATE,T1.FRIEND
FROM (SELECT TOP 1 FRIEND,COUNT(*) AS CNT
FROM FriendRelation
GROUP BY FRIEND
ORDER BY CNT DESC ) AS T1 ,
MEMBERS T2
WHERE T1.FRIEND = T2.MID
應該是這樣寫吧 = = 我手邊沒辦法幫你測 囧
另外ORACLE 那段 要回答答案的話 T2.FRIEND
AND MS-SQL T2.FRIEND 都要拿掉
因為題目沒有說要顯示這個。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 110.24.79.160
討論串 (同標題文章)