Поиск строк по имени в MYSQL

0

У меня есть таблица table1 a_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

---more, чем 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 hostname и привести все строки из table2 которая не имеет имени хоста, существующего в table1

Поэтому из приведенного выше примера мой запрос должен вернуться

id      name                 timestamp_val
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

Я написал следующий запрос

SELECT *  
FROM table2.name a
INNER JOIN table1.hostname b
  where  a.name NOT LIKE CONCAT(b.hostname, '%');
  • 0
    OUTER JOIN + WHERE IS NULL
  • 0
    не могли бы вы помочь мне с вопросом, пожалуйста?
Показать ещё 1 комментарий
Теги:
join
mysqli
inner-join
left-join

1 ответ

0

Что-то вроде этого (непроверено):

SELECT *
FROM Table2 t2
LEFT JOIN Table1 t1 ON SUBSTRING_INDEX(t1.hostname, '.',1)=
                       SUBSTRING_INDEX(t2.name, '.', 1)
WHERE t1.name IS NULL

Ещё вопросы

Сообщество Overcoder
Наверх
Меню