【发布时间】:2016-10-12 19:47:01
【问题描述】:
我需要根据它们共有的字符串数来匹配来自两个不同表的两列。所以例如在第一列我有:
================Table 1==============================
ID desc Year Month
123 food_drink 2016 8
345 shoe_bag 2016 8
678 001_toilet_paper 2015 7
910 Bags_of_thing 2015 6
======================table 2======================
ID Name Year month
ad drink_server 2016 8
ac shoe_shiny 2016 8
aa white_paper 2015 7
cc blue_bags 2015 6
有没有办法通过在描述和名称中加入年、月和类似的字符串来组合这两个表。所以比较 desc 和 name 列,看看它们是否有 >= 5 个共同的字符串,然后:
===================================================
ID1 ID2 name desc Year Month
123 ad drink server food_drink 2016 8
678 aa white_paper 001_toilet_paper 2016 7
本质上,我需要一种方法来比较不同表的两列之间的公共字符串的数量。谢谢。
【问题讨论】:
-
您可以编写任何您想要的
join- 连接子句简单地归结为布尔值 true/false:true = 加入记录,false = 不加入。但是您的子字符串匹配不会很漂亮。 sql 不是一种用于进行任意字符串操作的好语言。最好将表标准化并将这些 food/drink/server/blah/blah 关键字放入它们自己的子表中,然后匹配将是微不足道的加入 + 平等测试。 -
我不确定我是否理解。您想将 table1 中的每一行与 table2 中的每一行进行比较,以检查它们是否至少(或完全)有 5 个公共字段,或者您想将列与列进行比较?
-
您使用的是哪个 DBMS?
-
微软服务器管理工作室
-
嗨。恐怕问题不清楚。你能以身作则吗?谢谢
标签: sql