Пожалуйста, помогите мне написать общий SQL-запрос для следующих сценариев. Основываясь на данных в таблице 2, выход определяется. Для Eg1, если AB * присутствует в таблице 2, результатом будет AB01, AB02. Eg2 - AB02 присутствует в таблице 2, только выход AB02 в выходе Eg3 - * присутствует в таблице 2, все данные в таблице 1 представлены на выходе
Сценарий 1
Table1
AB01
AB02
BE01
GH01
Table2
AB*
Output
AB01
AB02
Scenario 2
Table1
AB01
AB02
BE01
GH01
Table2
AB02
Output
AB02
Сценарий 3
Table1
AB01
AB02
BE01
GH01
Table2
*
Output
AB01
AB02
BE01
GH01
Используйте rlike
при перекрестном соединении между таблицами:
select *
from table1 t1, table2 t2
where t1.col1 rlike t2.col2;
Вам может потребоваться настроить ваши выражения в таблице2, чтобы стать стандартными шаблонами регулярных выражений, но это должно быть легко. См. Https://dev.mysql.com/doc/refman/8.0/en/regexp.html.
Это должно сработать для вас:
select a.* from table1 a join table2 b on a.field like '%'+replace(b.field,'*','')+'%'