SELECT ip_groups.upass, ip_groups.uname, basic_account AS aid, accounts.is_blocked, inet_ntoa( ip_groups.ip & 0xffffffff)
FROM users
INNER JOIN accounts ON accounts.id = users.basic_account
INNER JOIN service_links ON service_links.account_id = users.basic_account
INNER JOIN iptraffic_service_links ON iptraffic_service_links.id = service_links.id
INNER JOIN ip_groups ON ip_groups.ip_group_id = iptraffic_service_links.ip_group_id
WHERE users.is_deleted =0
AND accounts.is_deleted =0
AND iptraffic_service_links.is_deleted =0
AND ip_groups.is_deleted =0
AND ip_type=0
GROUP BY users.id,users.basic_account, accounts.is_blocked,users.full_name
надо добавить в него вывод ID текущего тарифа пользователя
если можете объясните, почему, если убрать в конце users.full_name - запрос зависает надолго
Помогите с запросом
-
- Сообщения: 36
- Зарегистрирован: Ср фев 10, 2010 14:05
Вот так, по идее, быстрее будет
Исходный запрос можно так сделать:
p.s. А зачем GROUP BY ?
Код: Выделить всё
SELECT ip_groups.upass, ip_groups.uname, basic_account aid, accounts.is_blocked, inet_ntoa( ip_groups.ip & 0xffffffff), account_tariff_link.tariff_id
FROM users, accounts, users_accounts, service_links, iptraffic_service_links, ip_groups, account_tariff_link
WHERE users.id = users_accounts.uid
AND accounts.id = users_accounts.account_id
AND service_links.account_id = accounts.id
AND iptraffic_service_links.id = service_links.id
AND ip_groups.ip_group_id = iptraffic_service_links.ip_group_id
AND account_tariff_link.id = service_links.tariff_link_id
AND ip_groups.is_deleted = 0 AND ip_type = 0
Код: Выделить всё
SELECT ip_groups.upass, ip_groups.uname, basic_account AS aid, accounts.is_blocked, inet_ntoa( ip_groups.ip & 0xffffffff), account_tariff_link.tariff_id
FROM users
INNER JOIN accounts ON accounts.id = users.basic_account
INNER JOIN service_links ON service_links.account_id = users.basic_account
INNER JOIN iptraffic_service_links ON iptraffic_service_links.id = service_links.id
INNER JOIN ip_groups ON ip_groups.ip_group_id = iptraffic_service_links.ip_group_id
INNER JOIN account_tariff_link ON account_tariff_link.id = service_links.tariff_link_id
WHERE users.is_deleted =0 AND accounts.is_deleted =0 AND iptraffic_service_links.is_deleted =0 AND ip_groups.is_deleted =0 AND ip_type=0 GROUP BY users.id,users.basic_account, accounts.is_blocked,users.full_name;