【问题标题】:intersection of two sets in two coloumn of different table In MysqlMysql中不同表的两列中两组的交集
【发布时间】:2014-02-21 08:02:23
【问题描述】:

我有两个表都有一个用逗号(,)分隔多个值的列。我想从第一个表中获取在多列中至少有一个匹配的行。 表是 第一个表

第二张桌子

像第一列中的第一行有 3,第二个表中的第一行有 3 表示它的匹配项,因此应该获取第一个表的第一行。 如何为此编写查询

【问题讨论】:

  • 请多解释。您期望的所有值是什么?
  • Afaik,不可能以良好的性能做到这一点。您应该尝试修复您的架构。
  • 你可以试试这个 Select servicecode from second_table where INSTR(servicecode, (select SUBSTRING_INDEX(servicecode, ',', 1) from firstTable)) > 0 in mysql ?

标签: mysql sql sql-function


【解决方案1】:

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

但是你可以尝试这样的事情:

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 

Working fiddle

P.S:这是在mysql中。

【讨论】:

    猜你喜欢
    • 2012-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多