dhcpd option 82

Технические вопросы по UTM 5.0
Аватара пользователя
hellard
Сообщения: 52
Зарегистрирован: Вт апр 05, 2005 05:59
Откуда: Абакан
Контактная информация:

Сообщение hellard »

Удаленный коммутатор и порт хомяку привяжите в админке.

Аватара пользователя
TiRider
Сообщения: 568
Зарегистрирован: Сб июн 07, 2008 12:43

Сообщение TiRider »

В том то и дело, что удаленный коммутатор и порт в админке, указаны. Не работает запрос...

Код: Выделить всё

mysql> select * from (select (select INET_NTOA(b.router_bin_ip & 0xFFFFFFFF) from users a, routers_info b where b.id = a.remote_switch_id and a.id = c.user_id and a.is_deleted = '0') as switch_ip, (select a.port_number from users a where a.id = c.user_id and is_deleted = 0 and a.port_number > '0') as switch_port, (select INET_NTOA(a.ip & 0xFFFFFFFF) from ip_groups a where a.ip_group_id = (select a.ip_group_id from iptraffic_service_links a where a.id = c.id and is_deleted = '0') and is_deleted = '0') as user_ip from service_links c where c.service_id = '5' and is_deleted = '0' order by user_ip) u where u.switch_ip is not NULL and u.switch_port is not NULL;

Empty set (0.02 sec)
В админке у пользователя в разделе Другое указан удаленный коммутатор и порт. Чего еще не хватает то?

dk
Сообщения: 424
Зарегистрирован: Чт авг 10, 2006 08:52

Сообщение dk »

TiRider писал(а):В том то и дело, что удаленный коммутатор и порт в админке, указаны. Не работает запрос...

...

Код: Выделить всё

 from service_links c where c.service_id = '5' 
В админке у пользователя в разделе Другое указан удаленный коммутатор и порт. Чего еще не хватает то?
Услуга другая нужна?

Аватара пользователя
TiRider
Сообщения: 568
Зарегистрирован: Сб июн 07, 2008 12:43

Сообщение TiRider »

Не понимаю, вот хоть убейте... 5 на что поменять?

Аватара пользователя
TiRider
Сообщения: 568
Зарегистрирован: Сб июн 07, 2008 12:43

Сообщение TiRider »

Код: Выделить всё

select (select inet_ntoa(router_bin_ip & 0xFFFFFFFF) from users, routers_info where routers_info.id=users.remote_switch_id and routers_info.is_deleted='0' and users.is_deleted='0') as switch_ip, ( select port_number from users where id=user_id and is_deleted='0') as switch_port, (select inet_ntoa(ip & 0xFFFFFFFF) from ip_groups where ip_group_id in (select ip_group_id from iptraffic_service_links where iptraffic_service_links.id=id and is_deleted='0') and is_deleted='0') as user_ip from service_links, services_data where services_data.parent_service_id='15' and services_data.is_deleted='0' and service_id=services_data.id and services_data.is_deleted='0' and services_data.tariff_id!='0' order by switch_ip, switch_port;

ERROR 1242 (21000): Subquery returns more than 1 row
Подпилил чуток запрос, вообще перестал работать. Не понимаю, почему рабочий вариант не работает, и не выдает ничего...

dk
Сообщения: 424
Зарегистрирован: Чт авг 10, 2006 08:52

Сообщение dk »

Смотрите по подзапросам, один из них возвращает несколько значений (скорее всего несколько ip у пользователя), переделывайте его под себя. Его и так переделать стоит, запрос весьма неэффективный.

Аватара пользователя
TiRider
Сообщения: 568
Зарегистрирован: Сб июн 07, 2008 12:43

Сообщение TiRider »

dk писал(а):Смотрите по подзапросам, один из них возвращает несколько значений (скорее всего несколько ip у пользователя), переделывайте его под себя. Его и так переделать стоит, запрос весьма неэффективный.
Нет времени сидеть и выискивать в структуре таблицы базы данных утм, нужные значения. Хотя с вами полностью согласен, запрос слишком нагроможденный...

Аватара пользователя
TiRider
Сообщения: 568
Зарегистрирован: Сб июн 07, 2008 12:43

Сообщение TiRider »

Набросал свой запрос. Меня вполне устраивает.

Код: Выделить всё

SELECT inet_ntoa(ip & 0xFFFFFFFF) as ip, routers_info.router_ip, ip_groups.mac, inet_ntoa(router_bin_ip & 0xFFFFFFFF) as router_bin_ip, users.port_number, accounts.is_blocked, inet_ntoa(net & 0xFFFFFFFF) as net, ip_zones_detail.ip_zone_id, inet_ntoa(ip_zones_detail.mask & 0xFFFFFFFF) as mask, inet_ntoa(ip_zones_detail.gateway & 0xFFFFFFFF) as gateway FROM ip_groups, ip_zones_detail, iptraffic_service_links, service_links, routers_info, users, accounts WHERE ip_groups.mac!='' AND accounts.id=users.basic_account AND service_links.user_id=users.id AND service_links.is_deleted='0' AND ip_groups.is_deleted='0' AND iptraffic_service_links.ip_group_id=ip_groups.ip_group_id AND service_links.id=iptraffic_service_links.id AND routers_info.id=users.remote_switch_id GROUP BY ip_groups.ip ORDER BY ip_groups.ip;
По итогу:

Код: Выделить всё


+---------------+--------------+----------------+---------------+-------------+------------+-------------+------------+---------------+-------------+
| ip            | router_ip    | mac            | router_bin_ip | port_number | is_blocked | net         | ip_zone_id | mask          | gateway     |
+---------------+--------------+----------------+---------------+-------------+------------+-------------+------------+---------------+-------------+
| 172.19.19.36  | kr_arm_121_1 | 1111.1111.1111 | 172.17.17.247 |           1 |          0 | 172.19.19.0 |          1 | 255.255.254.0 | 172.19.19.1 |
| 172.19.19.3   | kr_arm_121_1 | 2222.2222.2222 | 172.17.17.247 |          23 |          0 | 172.19.19.0 |          1 | 255.255.254.0 | 172.19.19.1 |
Вот вам и костылинг....

Ответить