powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / запрос с подзапросом
9 сообщений из 9, страница 1 из 1
запрос с подзапросом
    #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
запрос с подзапросом
    #32312517
Фотография Дюков Дима
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во первых: при таком сравнение, если есть одно множество, то оно никак не может быть равно другому - это на мой взгляд самая основная ошибка. В этом случае нужно писать конструкцию Where Имя_Поля IN( подзапрос ). Второе: чтоб сделать неповторяющиеся строки, есть такое слово Distinct. Можно при равенстве использовать в подзапросе слово Distinct, тогда равенство будет верным или применить конструкцию IN. Вот собственно и все.
...
Рейтинг: 0 / 0
запрос с подзапросом
    #32312531
hangkil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а синтаксис написания, хотябы приблизительный можно?
...
Рейтинг: 0 / 0
запрос с подзапросом
    #32312552
Фотография ulis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вообще, все это результат неправильно спроектированной в данном случае базы. Например, а как быть, если человек может проживать по двум, трем адресам (квартирам) и одновременно в одной квартире проживает несколько людей? Или как быть, если дом может быть расположен на двух улицах и иметь, соответственно, разные номера? От этого и все беды на уровне запросов
...
Рейтинг: 0 / 0
запрос с подзапросом
    #32312568
hangkil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хорошо, тогда как правильно спроектировать базу?
...
Рейтинг: 0 / 0
запрос с подзапросом
    #32312570
hangkil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хотя с моей точки зрения, база нормальная основной поиск идет от улиц, а не от людей, но это только мое мнение, с проектированием баз я новичек.
...
Рейтинг: 0 / 0
запрос с подзапросом
    #32312620
Фотография ulis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в данном случае должно быть (как вариант):

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


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


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