作者SmallBeeWayn (喵喵叫的蜜蜂貓)
看板Database
標題[SQL ] 雙層的WHERE IN?
時間Wed Mar 30 01:40:12 2011
資料庫: 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: 122.116.180.163
→ danielguo:tb 拆成兩個表比較好 03/30 03:15
→ danielguo:(如果 tb 沒有其他欄位的話,改成不用 multi-value 便可) 03/30 03:21
→ SmallBeeWayn:其實我已經這麼做了,不過還是想知道解法 03/30 09:11