iT邦幫忙

1

SQL 搜尋問題

  • 分享至 

  • xImage

有AA部門 BB部門 兩個部門表我把它合併了,姓名有重複,搜尋部門是DT 只能使用一個搜尋變數,如輸入Abigail這個員工的姓名後要出現跟他同部門的所有人員 我嘗試了or and GROUP BY 等等 都沒出現我要的該怎麼做?

Select 
                                AA.ID,
                                AA.NAME,
                                AA.PTH,
                                BB.DT,
                                BB.DE
                                From AA
                                Join BB 
                                On BB.DT = AA.DT


簡單說我做完目前code後會得到上面的圖表,我後面要加什麼東西才能搜尋
'Abigail' 這個人名就能找到相同部門的員工,請問這SQL 語法就能解決嗎?
因為我剛剛來不能回復抱歉。

Zed_Yang iT邦新手 3 級 ‧ 2019-10-04 11:44:15 檢舉
有AA部門 BB部門 兩個部門表我把它合併了,姓名有重複
所以有可能 有一些人是同時在兩個部門?
然後DT又是人員的部門類??
tryit iT邦研究生 4 級 ‧ 2019-10-04 12:10:30 檢舉
你已經用on去要求說aa.dt = bb.dt
也就是說你的欄位只剩下aa跟bb中dt一樣的東西,其他都被排除了。
而你最後又用了aa.name= 某人
那最後篩選出來的東西當然會只剩下那個人阿
然後其實我不太懂,你想問什麼,是只要輸入人名,就要把跟那人名同部門的都找出來嗎?無論是否a跟b都有?
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

1
小魚
iT邦大師 1 級 ‧ 2019-10-04 11:42:05
最佳解答

是這樣嗎?

SELECT * FROM AA
WHERE DT = (SELECT DT FROM AA WHERE NAME = 'Abigail')
UNION
SELECT * FROM BB
WHERE DT = (SELECT DT FROM AA WHERE NAME = 'Abigail')

如果兩個表欄位一樣是可以這樣用,
不過建議還是把欄位列出來.

2
allenlwh
iT邦高手 1 級 ‧ 2019-10-04 12:43:23
select t0.ID,t0.NAME,t0.PTH,t0.DT,t0.DE
from 
    ( select * from AA union all select * from BB ) t0 
where t0.DT= (select DT FROM AA where NAME = 'Abigail')

我要發表回答

立即登入回答