看板 Database 關於我們 聯絡資訊
※ 引述《danielguo (Daniel Guo)》之銘言: : ※ 引述《odj (***ˋ( ̄  ̄)》之銘言: : : 最近在寫一個交集的語法,覺得自己寫的不是很好,因此想請教一下是否有更好的寫法 : : 我有一個資料表(table1)如下: : : id w_id server : : 1 3 A : : 2 3 B : : 3 4 B : : 4 5 B : : 5 3 C : : 6 4 C : : 7 5 C : : 今天我想取得的是ABC三台server共有的w_id值,以上表來說,就是3 : 計算每個 w_id 有幾個 server : (假設 (w_id, server) 會重複, 不重複用 COUNT(*) 便可) : SELECT `w_id`, COUNT(DISTINCT `server`) AS `count` : FROM `table1` : WHERE `server` IN ('A', 'B', 'C') : GROUP BY `w_id` : HAVING `count` = 3; 推 odj:可能我表達的不好讓你誤會了 我不是要W_ID值有幾個SERVER 10/31 08:12 → odj:而是像A有的w_id值是3 B有3,4,5 C有3,4,5 那ABC三者都有的 10/31 08:14 推 odj:的w_id值就是3 我想要抓出的是這個值 10/31 08:18 推 odj:抱歉了 還是感謝你的幫忙 這兩個問題是等義的, 例如上面的例子, A:3, B:345, C:345 也就是 3:ABC, 4:BC, 5:BC server w_id A 3 B 3 B 4 B 5 C 3 C 4 C 5 也就是 server w_id A 3 B 3 C 3 B 4 C 4 B 5 C 5 找 A, B, C 這三個 server 都有的 w_id 列表, 等於找一個 w_id 列表, 其中的每個 w_id 都有 A, B, C 這三個 server -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 24.19.233.135 ※ 編輯: danielguo 來自: 24.19.233.135 (10/31 12:47)
odj:屋喔 受益匪淺 非常感謝~! 10/31 13:52