iT邦幫忙

0

SQL 練習子查詢 疑問

  • 分享至 

  • xImage
Select * From (
	Select USER_ID,
	USER.NAME,
	USER.DT,
	DT.PT_ID
	From USER 
	Join DT On USER.DT = DT.DT
) TestTable Where PT_ID = 
(
Select DT From USER全部查詢表 Where USER_ID = '061195'
)ORDER BY TestTable.DT

原始(USER全部查詢表)
https://ithelp.ithome.com.tw/upload/images/20191011/20121723sHyrmbX5WV.png

上面程式碼執行結果
https://ithelp.ithome.com.tw/upload/images/20191011/20121723eSwGg7y78c.png
部門樣式(DT (table))
https://ithelp.ithome.com.tw/upload/images/20191011/20121723K8KBVyyjC8.png

我要嘗試不用like、只能查詢USER_ID,怎麼做才能得到向我下面那樣的結果圖呢?
因為它屬於第一個PT_ID會是空的,但我有點轉不過來想看怎麼寫才能達到我想要的結果,求指點。
https://ithelp.ithome.com.tw/upload/images/20191011/20121723Am0hP5VbFD.png

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
小魚
iT邦大師 1 級 ‧ 2019-10-10 22:39:29
WHERE DT = 'KG' OR PT_ID = 'KG'

這是你要的嗎?

看更多先前的回應...收起先前的回應...

為...為什麼我看不太懂他的題目 (艸)

hyert iT邦新手 5 級 ‧ 2019-10-10 22:50:20 檢舉

第一欄的 PT_ID是空的 要在程式碼加入什麼可以得到結果圖

小魚 iT邦大師 1 級 ‧ 2019-10-11 08:31:18 檢舉

你如果能匯出資料表資料給我,
我可以幫你測試看看.

通靈亡 iT邦高手 1 級 ‧ 2019-10-11 13:48:09 檢舉

你是什麼原因需要用這種寫法?

  1. 通常你可以先JOIN 父部門 (PT_DT) 再 JOIN子部門(DT)
  2. 或者用 UNION SELECT 父部門 再 UNION SELECT 子部門
通靈亡 iT邦高手 1 級 ‧ 2019-10-11 13:54:24 檢舉
SELECT USER.USER_ID,
       USER.Name,
       USER.DT,
       parent_DT.DT,
       parent_DT.DTName,
       child_DT.DT,
       child_DT.DTName
FROM USER
INNER JOIN DT parent_DT
ON USER.PT_DT = parent_DT.PT_DT --上面部門
INNER JOIN DT child_DT 
ON parent_DT.DT = child_DT.DT -- 主要部門
WHERE USER.USER_ID = '061195'
小魚 iT邦大師 1 級 ‧ 2019-10-11 15:02:27 檢舉

ted59438

  1. 你為什麼不另外開一個回答呢?
  2. 他要的是那個人所在的整個部門, 而不是只有那個人.
通靈亡 iT邦高手 1 級 ‧ 2019-10-11 15:40:12 檢舉

小魚

1.因為沒有想要開另一個回答,單純就這串接的內容著回覆下去 XD
2.了解,如果一定只能用User_ID,下面多一個判斷DT = PT_ID (其實就跟你的回答差不多...)

Select * From (
	Select USER_ID,
	USER.NAME,
	USER.DT,
	DT.PT_ID
	From USER 
	Join DT On USER.DT = DT.DT
) TestTable Where PT_ID = 
(
Select DT From USER全部查詢表 Where USER_ID = '061195'
)
OR DT = (
Select PT_ID From USER全部查詢表 Where USER_ID = '061195'
)
ORDER BY TestTable.DT
小魚 iT邦大師 1 級 ‧ 2019-10-11 16:18:14 檢舉

我是這樣想的,
只是我覺得語法變得好長,
在享能不能使用變數的方式...

我要發表回答

立即登入回答