我正在尝试在两个表之间连接在一个列上有一个值,另一个列有多个值。
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
先谢谢
答案 0 :(得分:3)
听起来你在t1.items
列中有一个以逗号分隔的列表。这是糟糕的数据库设计。正确的设计是有一个单独的关联表。
但是,您可以使用like
:
select *
from table1 t1 left join
table2 t2
on ','||t1.items||',' like '%,'||t2.varieties||',%'
请注意,这会在列表的开头和结尾添加分隔符,然后搜索由分隔符包围的单词。这可以防止“苹果”匹配“菠萝”。