powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / как правильно объединить?
6 сообщений из 6, страница 1 из 1
как правильно объединить?
    #38697462
frz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
frz
Гость
Есть таблица calls(tel, date_c, duration, time_c, type_c) c,в которой информация о вызовах и таблица telephone(id, code, name) t , содержащая сведения об операторе(код, название).
В dbgrid мне нужно вывестити таблицу calls и последним столбцом поле telephone.name


Select c.tel, c.duration, c.date_c, c.time_c, c.type_c, t.name as phone from calls c left join telephone t on left(c.tel,length(t.phone)) like CONCAT('%',t.code, '%')

Такой вариант годится в случае, если в таблице t нет операторов с перекрытием номеров. Т.е., если, к примеру, в t есть номера 8920 и 89206 с разными названиями,а в c номер 89206174478, то будет отображено две записи. Как сделать, чтобы в случае частичного совпадения выводилась только запись с большей длиной(89206)?
...
Рейтинг: 0 / 0
как правильно объединить?
    #38697595
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
frzтаблица telephone(id, code, name) t
frz
Код: sql
1.
2.
3.
Select c.tel, c.duration, c.date_c, c.time_c, c.type_c, t.name as phone  
from calls c 
left join telephone t on left(c.tel,length(t.phone)) like CONCAT('%',t.code, '%')

показывайте настоящий запрос
или настоящие таблицы
...
Рейтинг: 0 / 0
как правильно объединить?
    #38697682
frz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
frz
Гость
T.code конечно же вместо t.phone, остальное без изменений
...
Рейтинг: 0 / 0
как правильно объединить?
    #38697707
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
frz,
Код: sql
1.
2.
3.
4.
5.
6.
7.
Select c.tel, c.duration, c.date_c, c.time_c, c.type_c
 ,(select name
  from telephone t
  where c.tel like CONCAT(t.code, '%')
  order by length(name) desc limit 1
 ) as phone
from calls c 

а по-хорошему надо где-то сразу хранить привязку номера к коду, чтобы лайк-поиском не страдать...
...
Рейтинг: 0 / 0
как правильно объединить?
    #38697754
frz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
frz
Гость
tanglir,

Спасибо, то что нужно! Только вы, наверное, имели ввиду length(code)
...
Рейтинг: 0 / 0
как правильно объединить?
    #38697796
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
frz, да, перепутал.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / как правильно объединить?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]