Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / запрос с подзапросом / 9 сообщений из 9, страница 1 из 1
01.11.2003, 11:21
    #32312490
hangkil
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос с подзапросом
допустим в базе test есть 4 табл:
street (с полями: id_st и st_name) ,
dom (с полями: id_dom, nom_dom и id_st (связанное с id_st из табл street)) ,
kv (id_kv, nom_kv, id_dom (связан с табл. dom))
man (id_m, name, id_kv(связь с табл. kv))

на форме есть 3 датакомбо первый отображающий из первой таблици название улиц, во вторм дома на этой улице и т.д. при клике на улицу все номера домов отображиются в датагриде, и так далее

так вот как сделать чтоб при клике на улицу отображались только те дома, которые к ней относятся, в ней есть повторяющиеся названия котрые вот при таком запросе ругается:

sql = "select name from man where id_kv = (select id_kv from kv where nom_kv = " & dc_kv.Text & ")" & " order by name"

если нет повторений то все нормально.

что надо поправить или дописать?

база Акцесс ХР
...
Рейтинг: 0 / 0
01.11.2003, 12:40
    #32312517
Дюков Дима
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос с подзапросом
Во первых: при таком сравнение, если есть одно множество, то оно никак не может быть равно другому - это на мой взгляд самая основная ошибка. В этом случае нужно писать конструкцию Where Имя_Поля IN( подзапрос ). Второе: чтоб сделать неповторяющиеся строки, есть такое слово Distinct. Можно при равенстве использовать в подзапросе слово Distinct, тогда равенство будет верным или применить конструкцию IN. Вот собственно и все.
...
Рейтинг: 0 / 0
01.11.2003, 13:14
    #32312531
hangkil
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос с подзапросом
а синтаксис написания, хотябы приблизительный можно?
...
Рейтинг: 0 / 0
01.11.2003, 14:27
    #32312552
ulis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос с подзапросом
вообще, все это результат неправильно спроектированной в данном случае базы. Например, а как быть, если человек может проживать по двум, трем адресам (квартирам) и одновременно в одной квартире проживает несколько людей? Или как быть, если дом может быть расположен на двух улицах и иметь, соответственно, разные номера? От этого и все беды на уровне запросов
...
Рейтинг: 0 / 0
01.11.2003, 15:33
    #32312568
hangkil
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос с подзапросом
хорошо, тогда как правильно спроектировать базу?
...
Рейтинг: 0 / 0
01.11.2003, 15:36
    #32312570
hangkil
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос с подзапросом
хотя с моей точки зрения, база нормальная основной поиск идет от улиц, а не от людей, но это только мое мнение, с проектированием баз я новичек.
...
Рейтинг: 0 / 0
01.11.2003, 18:10
    #32312620
ulis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос с подзапросом
в данном случае должно быть (как вариант):

справочник Улица (id, назвУлицы)
справочник Дом (id, НомерДома, ДопДанные)
справочник Жилец (id, ФИО)
таблица Квартира (id, КодДома, ЧислоКомнат и т.д.)
таблица "связка" УлицаДом (id, КодУлицы, КодДома)
таблица "связка" ЖилецКвартира (id, КодЖильца, КодКвартиры)
...
Рейтинг: 0 / 0
01.11.2003, 21:51
    #32312659
hangkil
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос с подзапросом
ну не знаю, возможно вы и правы, а представьте себе, что при заполнении базы придется давать еще и код улицам и домам, но хотя это делается один раз, можно попробовать, а если вам не трудно не моглибы вы все это показать на примере, там делов то на 5 мин, и скинуть мен по почте? (просто просьба)


а справочники это имеется ввиду таблицы которые не связаны?
...
Рейтинг: 0 / 0
02.11.2003, 08:51
    #32312712
ulis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос с подзапросом
Мой вариант тоже не оптимален, квартиры вообще можно не хранить, а указывать как одно из свойств домов:
справочник Дом (id, НомерДома,ЧислоКвартир)
Ладно, я постара.сь примерчик слепить, как только время появится
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / запрос с подзапросом / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]