2014-02-21 4 views
0

У меня две таблицы имеют столбец с запятыми (,), разделенными несколькими значениями. Я хочу получить строки из первой таблицы, которые имеют как минимум одно совпадение в обоих столбцах. Таблицы первой таблица enter image description hereпересечение двух наборов в двух столбцах разной таблицы В Mysql

второй таблица enter image description here

, как первый ряд в первом столбце имеет 3 и первую строку второй таблицы имеет 3 означает его совпадение, так первая строка первой таблицы должна быть выборок. Как написать запрос для этого

+0

Пожалуйста, объясните больше. Что такое * все * значения, которые вы ожидаете? –

+0

Afaik, это невозможно сделать с хорошей производительностью. Вы должны попытаться исправить вашу схему. – Vatev

+0

Вы можете попробовать это Выберите servicecode from second_table, где INSTR (servicecode, (выберите SUBSTRING_INDEX (servicecode, ',', 1) from firstTable))> 0 в mysql? –

ответ

0

Я не уверен, как производительность такого запроса может пойти,

, но тогда вы могли бы попробовать что-то вроде этого:

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

PS: это в mysql.

Смежные вопросы