看板 Database 關於我們 聯絡資訊
對MySQL沒有很熟, 不過有點好奇你寫的那段SQL可以work嗎??感覺語法怪怪的耶。 如果在你不想改造tb的狀況下,硬要join出想要的結果,我想到的方法是: SELECT tb.bIndex, ta.aIndex, ta.aValue FROM ta JOIN tb ON ( tb.bValue LIKE Cast(ta.aIndex AS Char)+',%' OR tb.bValue LIKE '%,'+Cast(ta.aIndex AS Char) OR tb.bValue LIKE '%,'+Cast(ta.aIndex AS Char)+',%' ) 手邊暫時沒有MySQL可以試驗,不確定有沒有寫錯東西, 但是概念上就是用三種可能的字串樣式(aIndex在字首、字尾、或字中)去Join。 ※ 引述《SmallBeeWayn (喵喵叫的蜜蜂貓)》之銘言: : 資料庫: MySQL 5.1 : 範例表格: : ta aIndex aValue : 1 a1 : 2 a2 : 3 a3 : .... ....(以此類推) : tb bIndex bValue : 1 1,3,5 : 2 2,3 : 3 2,5,7,8 : 我想要得到這樣的結果: : bIndex aIndex aValue : 1 1 a1 : 1 3 a3 : 1 5 a5 : 3 2 a2 : 3 5 a5 : 3 7 a7 : 3 8 a8 : 使用下列的語法: : SELECT `bIndex`,`aIndex`,`aValue` : JOIN `ta` ON (`ta`.`aIndex` IN (`tb`.`bValue`)) : WHERE `bIndex` IN (1,3) : 結果卻得到這樣的結果: : bIndex aIndex aValue : 1 1 a1 : 3 2 a2 : 請問我該怎麼修正? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.166.141.226