dhcpd option 82
В том то и дело, что удаленный коммутатор и порт в админке, указаны. Не работает запрос...
В админке у пользователя в разделе Другое указан удаленный коммутатор и порт. Чего еще не хватает то?
Код: Выделить всё
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)
Услуга другая нужна?TiRider писал(а):В том то и дело, что удаленный коммутатор и порт в админке, указаны. Не работает запрос...
...
В админке у пользователя в разделе Другое указан удаленный коммутатор и порт. Чего еще не хватает то?Код: Выделить всё
from service_links c where c.service_id = '5'
Код: Выделить всё
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 писал(а):Смотрите по подзапросам, один из них возвращает несколько значений (скорее всего несколько ip у пользователя), переделывайте его под себя. Его и так переделать стоит, запрос весьма неэффективный.
Набросал свой запрос. Меня вполне устраивает.
По итогу:
Вот вам и костылинг....
Код: Выделить всё
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 |