使用字符串连接数组上的表

时间:2016-06-20 18:57:06

标签: sql arrays join

我希望在一个表上进行左连接,该表具有一个名为tags的数组列,其中一个表具有标记tag_definitions的定义。城市表中每行只有一个(最多)匹配。我无法使用字符串加入数组,我不确定如何继续。

Cities_Table

  

City_Code |州|标签

     

纽约市|纽约| 1,4,5

     

SF | CA | 2,4,6

     

CHI | IL | 3,8,10

Tag_Definitions

  

Tag_ID |名称

     

5 | East_Coast

     

6 | West_Coast

     

10 |中西部

所以我希望得到这样的东西......

  

City_Code |州|标签| Tag_Descr

     

纽约市|纽约| 1,4,5 | East_Coast

     

SF | CA | 2,4,6 | West_Coast

     

CHI | IL | 3,8,10 |中西部

1 个答案:

答案 0 :(得分:0)

根据您的数据库(语法可能不同),您可以执行以下操作:

select *
from cities_table c 
  join tag_definitions t on concat(',',c.tags,',') like concat('%,',t.tag_id,',%')

然而,如上所述,更好的想法是创建一个City_Tags表并将单个ID存储在该表中。通常,存储逗号分隔数据不是一个好主意。