0

1 つの値を持つ 1 つの列と複数の値を持つ他の列の 2 つのテーブルを結合しようとしています。

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

列にカンマ区切りのリストがあるようですt1.items。これはデータベースの設計が不適切です。適切な設計は、個別の関連付けテーブルを持つことです。

ただし、次を使用して結合を行うことができますlike

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

これにより、リストの先頭と末尾に区切り記号が付けられ、区切り記号で囲まれた単語が検索されることに注意してください。これにより、「リンゴ」が「パイナップル」と一致しなくなります。

于 2013-07-12T10:32:36.743 に答える