看板 Database 關於我們 聯絡資訊
※ 引述《kalecgos0616 (.)》之銘言: : 資料庫是MySQL 5.0.77 : 我現在有兩個資料表: : table1: : Id 店面 : Tom A : Tom B : 代表Tom有A, B店面 : table2: : 店面 倉庫 : A C : A D : B E : 代表A店面有C, D倉庫; B店面有E倉庫 : 希望能顯示出下面這樣的結果: : Id 地點 : Tom A : Tom B : Tom C : Tom D : Tom E : 代表Tom擁有以下地點 : 我用這句sql: : SELECT a.Id, b.Object2 FROM `table1` AS a, `table2` AS b WHERE a.Object = : b.Object : 只會顯示 : Id Object2 : 1 C : 1 D : 1 E : 要怎麼要達到我希望的結果呢? 最基本用UNION的寫法是 SELECT Id, 店面 as 地點 FROM table1 WHERE Id='Tom' UNION SELECT t1.Id, t2.倉庫 as 地點 FROM table2 t2 JOIN table1 t1 on t2.店面 = t1.店面 WHERE t1.Id = 'Tom' ======================================= 如果有多層遞迴的關係,可以試著用CTE遞迴JOIN ;WITH tb(ID, 地點) as ( SELECT Id, 店面 FROM table1 WHERE Id = 'TOM' UNION ALL SELECT tb.Id, 倉庫 FROM table2 JOIN tb on tb.地點 = table2.店面 WHERE ID = 'Tom' )SELECT DISTINCT * FROM tb 不過MYSQL好像沒有CTE就是了.. -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.249.134.33