[考題] 關於資料庫的問題

看板Examination (國家考試)作者 (一塊小蛋糕)時間13年前 (2013/04/23 16:10), 編輯推噓4(4010)
留言14則, 8人參與, 最新討論串1/2 (看更多)
Employee(E#,E_name,E_address,E_salary) Works_On(E#,P#,hours) project(P#,P_name) 問:列出所有做了三個(含)以上的計劃的員工,他們的名字和薪水 唐箏的解法: Select E_name,E_salary From Employee Whrer E# In (Select E# From works_on Group By E# Having count(*)>=3 ); 函授課程中,他自己說這個解法,在子查詢中少了where條件,要學生自己寫 還說不會寫的考不上....我就是那個不會寫的XDD 有人知道where條件缺什麼嗎? 是不是少了 Where Employee.E# = works_on.E# ?? 如果是少了這個,覺得滿疑惑的 我自己是覺得 子查詢已經可以靠 Group By E# 和 Having count(*) 查詢出誰做了三個以上的計畫 並且 Select E# 會顯示出這些人的 E# 給上一層的 where 如此為什麼還要再子查詢裡面加where條件? ---------------------------------------------------------------------------- 或者他的意思是最上層 where 少了條件?? 請高手解惑 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.227.244.74

04/23 16:45, , 1F
你寫的where條件把E改成P
04/23 16:45, 1F

04/23 16:47, , 2F
改成works_on.p#=project.p#
04/23 16:47, 2F

04/23 17:03, , 3F
答案是 不用寫WHERE的條件 硬要寫就WHERE '1'='1'
04/23 17:03, 3F

04/23 17:04, , 4F
我指的是內部不需要WHERE 外部也已經有了
04/23 17:04, 4F

04/23 17:58, , 5F
Your anser is solution 2 and it is correct. The answer
04/23 17:58, 5F

04/23 17:59, , 6F
in the textbook lack the "where ..." sentence.
04/23 17:59, 6F

04/23 18:02, , 7F
樓上正解
04/23 18:02, 7F

04/23 20:21, , 8F
這題不用使用PROJECT就可以解了
04/23 20:21, 8F

04/23 21:56, , 9F
那個解法就是對的阿 有少條件嗎?
04/23 21:56, 9F
函授的課程上面他說有,他叫學生自己寫where的條件,然後補一句"不會寫的考不上"..XDD ※ 編輯: aPieceOfCake 來自: 61.227.244.74 (04/23 22:05)

04/23 22:22, , 10F
我覺得是要針對同一個表格查詢,如果有多個表格可能會出錯
04/23 22:22, 10F

04/23 22:23, , 11F
所以在進行多個表格查詢必須把這幾個表格JOIN起來成1個表
04/23 22:23, 11F

04/23 23:31, , 12F
我怎麼記得IN裡面的子查詢不用特別加
04/23 23:31, 12F

04/23 23:32, , 13F
Employee.E#=Works_on.E#,是EXIST才規定一定要加吧~
04/23 23:32, 13F

10/11 22:23, , 14F
那個解法就是對的阿 有 https://daxiv.com
10/11 22:23, 14F
文章代碼(AID): #1HTa7Oms (Examination)
討論串 (同標題文章)
文章代碼(AID): #1HTa7Oms (Examination)