У меня таблица table1a_id как PK, hostname, create_dt
Здесь ipaddress - это varchar, create_dt - это datetime.
a_id hostname create_dt
9205 abc.com 2017-01-07 08:03:32
9206 cde 2017-01-06 08:03:32
9207 abc2.com 2015-01-07 08:03:32
--- более 1000 строк
У меня есть еще одна таблица mysql со следующими столбцами id как PK, name и created_dt:
и created_dt - это datetime
id name created_dt
1 abc 2017-01-07 10:03:32
2 cde.com 2017-01-07 10:03:32
3 abc2.com 2016-11-07 10:03:32
4 abc3.com 2016-11-07 10:03:32
5 abc4.com 2017-01-06 10:03:32
6 abc5.com 2015-01-06 10:03:32
Я хочу сравнить table1 и table2 с помощью hostname и name и вывести все строки из table2, которые имеют имя хоста, существующее в table1.
Итак, из приведенного выше примера мой запрос должен вернуть
id name timestamp_val
1 abc 2017-01-07 10:03:32
2 cde.com 2017-01-07 10:03:32
3 abc2.com 2016-11-07 10:03:32
Я написал следующий запрос
SELECT *
FROM table2.name a
INNER JOIN table1.hostname b
where a.name LIKE CONCAT(b.hostname, '%');






Вы можете использовать SUBSTRING_INDEX, я не пробовал этот запрос, но запрос ниже будет выглядеть так, как вы хотите.
Попробуй это :
SELECT t2.*
FROM table2 t1, table2 t2
WHERE (SUBSTRING_INDEX(t1.hostname, '.', 1) = SUBSTRING_INDEX(t2.name, '.', 1))