помогите с запросом

SA739

Cogito, ergo sum
помогите с запросом

доброго времени суток.

имеются 3 таблицы:
t_data:
t_data_host_id
t_data_ip_id
t_data_service_id
in_b
out_b
date

l_client_ip: (идентификаторы ip адресов клиентов)
l_client_id
t_data_ip_id

l_client_service: (указатели на каком хосте собирается трафик по данному сервису для данного клиента)
l_client_id
t_data_service_id
t_data_host_id

подскажите каким образом лучше сделать следующее:
извлечь все записи из t_data в которых t_data_host_id и t_data_service_id совпадают с l_client_service.l_client_id который в свою очередь совпадает с l_client_ip.l_client_id для которого l_client_ip.t_data_ip_id = t_data.t_data_ip_id ?

вот собственно и весь вопрос, у меня есть необоснованные (по незнанию) сомнения что тут одним запросом не обойдешься, но очень хочется :)
бд: mysql
заранее благодарен.
 

Georgy

Guest
блин ... по пунктам, что с чем должно совпадать.
 

Popoff

popoff.donetsk.ua
[sql]select t_data.* from t_data,l_client_ip,l_client_service where t_data.t_data_host_id=l_client_service.t_data_service_id and t_data.t_data_service_id=l_client_service.t_data_service_id and l_client_ip.l_client_id=l_client.service.l_client_id[/sql]

1. ужасные имена %)
в имена полей совсем не обязательно включать имя таблицы. Лично мне больше нравится вариант наименований, в которм в качестве префикса указывается тип поля (не обязательно данного, которое хранится в этом поле), например kServiceID -- k означает, что это ключ :)
ну, хотя, на вкус и цвет, безусловно, товарища нет. но длинные имена это все-такак как-то плохо читается и трудно набирается :)

2. а для чего собственно таблица идентификаторов ip-адресов, почему бы не хранить сами ip-адреса? экономия места на ip-адресах тогда будет раза в три.. :)
 
Сверху