Mysql中不同表的两列中两个集合的交集

Mysql中不同表的两列中两个集合的交集,mysql,sql,sql-function,Mysql,Sql,Sql Function,我有两个表,两个表都有一个带逗号的列,分隔多个值。我想从第一个表中获取行,这些行在这两个多列中至少有一个匹配项。 桌子是 第一桌 第二桌 和第一列中的第一行有3和第二个表中的第一行有3一样,这意味着它是匹配的,所以第一个表的第一行应该是fetch。 如何为该编写查询我不确定这种查询的性能如何 但是你可以试试这样的东西: SELECT firsttable.servicecode AS a, Substring_index(fi

我有两个表,两个表都有一个带逗号的列,分隔多个值。我想从第一个表中获取行,这些行在这两个多列中至少有一个匹配项。 桌子是 第一桌

第二桌

和第一列中的第一行有3和第二个表中的第一行有3一样,这意味着它是匹配的,所以第一个表的第一行应该是fetch。
如何为该

编写查询我不确定这种查询的性能如何

但是你可以试试这样的东西:

SELECT firsttable.servicecode                          AS a, 
       Substring_index(firsttable.servicecode, ',', 1) AS x 
FROM   firsttable 
      JOIN secondtable 
         ON Locate(( Substring_index(firsttable.servicecode, ',', 1) ), 
             secondtable.servicecode) > 0 

注:这是mysql。

请详细解释。您期望的所有值是什么?好吧,要以良好的性能实现这一点是不可能的。您应该尝试修复您的架构。是否可以尝试从mysql中的第二个表中选择servicecode,其中INSTRservicecode,从第一个表中选择SUBSTRING_INDEXservicecode,',',1>0?