0

我正在尝试在两个表之间加入一个具有一个值的列和具有多个值的另一列。

For ex. table1 column varieties     table2 Items
        Fruits                      vegetables,spinach,fruits
        Vegetable 
        Spinach

有什么办法可以加入这样的:

select * from table1 t1 left join table2 t2  on t1.varieties in t2.items

提前致谢

4

1 回答 1

3

听起来您在 column 中有一个逗号分隔的列表t1.items。这是糟糕的数据库设计。正确的设计是有一个单独的关联表。

但是,您可以使用以下方式进行连接like

select *
from table1 t1 left join
     table2 t2
     on ','||t1.items||',' like '%,'||t2.varieties||',%'

请注意,这会在列表的开头和结尾放置一个分隔符,然后搜索由分隔符包围的单词。这可以防止“apple”匹配“pineapple”。

于 2013-07-12T10:32:36.743 回答