Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: MySQL. Подстановка значений из другой таблицы по двум значениям.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Ioann_II
Отправлено: 29 Ноября, 2015 - 11:24:42
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Нояб. 2015  


Помог: 0 раз(а)




Здравствуйте.

Прошу подсказки.
Есть две таблицы.
Первая содержит координаты X1, Y1.
Вторая также содержит координаты X2, Y2 и название объекта.
1. Надо делать подстановку названия по совпадению пары координат.
2. Возможно ли указать неточное совпадение? т.е. когда X1 и X2 отличаются не более чем на dx и Y1 и Y2 отличаются не более чем на dy. dx и dy - константы.

Спасибо.
 
 Top
DeepVarvar Супермодератор
Отправлено: 29 Ноября, 2015 - 11:28:41
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




CODE (SQL):
скопировать код в буфер обмена
  1. ... WHERE (tbl2.X2 BETWEEN (tbl1.X1 - dx) AND (tbl1.X1 + dx))
  2.         AND (tbl2.Y2 BETWEEN (tbl1.Y1 - dy) AND (tbl1.Y1 + dy))
Не проверял, но, вроде должно взлететь.
 
 Top
Ioann_II
Отправлено: 29 Ноября, 2015 - 11:47:38
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Нояб. 2015  


Помог: 0 раз(а)




Если я верно понимаю, то что Вы предложили выберет из таблицы те записи, где координаты попадают. А мне надо чтобы была подстановка во всех записях.

Для замены по точному совпадению одного поля делал так:

"SELECT .... FROM tb_a LEFT JOIN tb_b USING (id) ORDER BY date_time DESC"

теперь надо ещё по координатам замену добавить.
 
 Top
Мелкий Супермодератор
Отправлено: 29 Ноября, 2015 - 12:43:33
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Покопайте в сторону нормального GIS. Вроде бы даже myqsl всё-таки умеет соответствующие типы данных.

Ioann_II пишет:
теперь надо ещё по координатам замену добавить.

Замена - это операторы update и replace. Но, кажется, вы не о том говорите. Так о чём же вы? Я не понимаю.


-----
PostgreSQL DBA
 
 Top
Ioann_II
Отправлено: 29 Ноября, 2015 - 13:19:08
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Нояб. 2015  


Помог: 0 раз(а)




Написал ЗАМЕНА, имел в виду ПОДСТАНОВКА.
Как делать по одному КЛЮЧУ (полю id) - разобрался:
"SELECT .... FROM tb_a LEFT JOIN tb_b USING (id) ORDER BY date_time DESC"

Теперь надо по комбинации двух полей (tb_b X и tb_b Y).

Хочу по координатам распознавать объекты.
Во второй таблице хранятся координаты объектов.
 
 Top
Ioann_II
Отправлено: 30 Ноября, 2015 - 02:58:08
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Нояб. 2015  


Помог: 0 раз(а)




Всем Спасибо.

Всё сделал. Конструкция с LEFT JOIN ON помогла.
 
 Top
SAD Модератор
Отправлено: 30 Ноября, 2015 - 08:58:45
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




Покажите, пожалуйста, своё решение. Вдруг, оно пригодится кому - нибудь ещё.
 
 Top
Ioann_II
Отправлено: 30 Ноября, 2015 - 10:07:28
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Нояб. 2015  


Помог: 0 раз(а)




"SELECT .... FROM tb_a LEFT JOIN tb_b USING(x, y) ORDER BY date_time DESC"
или
"SELECT.....FROM tb_a LEFT JOIN tb_b ON (tb_a.x >= tb_b.x - tb_b.allow) AND (tb_a.x <= tb_b.x + tb_b.allow) AND (tb_a.y >= tb_b.y - tb_b.allow) AND (tb_a.y <= tb_b.y + tb_b.allow) ORDER BY...."
второй вариант задаёт и допуск.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB