|
Как правильно это сделать
|
|||
---|---|---|---|
#18+
при запросе к базе он выдает ошибку что: данный подчиненный запрос должен возвращать не более одной записи, как это пинимать? и это бывает когда в одной таблице повторяются данные (кроме индекса) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2003, 09:28 |
|
Как правильно это сделать
|
|||
---|---|---|---|
#18+
запрос в студию. скорее всего это что-то типа SELECT * FROM table1 WHERE (id = (SELECT id FROM table1 WHERE id LIKE '%2%')) а должно быть SELECT * FROM table1 WHERE (id IN (SELECT id FROM table1 WHERE id LIKE '%2%')) либо SELECT * FROM table1 WHERE (id = (SELECT id FROM table1 WHERE id =2 )) больше ничего похожего на лету сэмулировать не удалось ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2003, 09:36 |
|
Как правильно это сделать
|
|||
---|---|---|---|
#18+
sql = "select nom_kv from kv where id_dom = (select id_dom from dom where nom_dom = " & "'" & CStr(dc_dom.Text) & "'" & ")" & " order by nom_kv" вот был мой запрос ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2003, 09:43 |
|
Как правильно это сделать
|
|||
---|---|---|---|
#18+
а вот мой пример: допустим в базе 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" если нет повторений то все нормально. что надо поправить или дописать? а так же можно предложить свой вариант проектирование этой базы. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2003, 09:46 |
|
Как правильно это сделать
|
|||
---|---|---|---|
#18+
писал: sql = "select nom_kv from kv where id_dom = (select id_dom from dom where nom_dom = " & "'" & CStr(dc_dom.Text) & "'" & ")" & " order by nom_kv" вот был мой запрос не геморойся с комбами вешай 4 грида - улицы, дома, квартиры и хуманы. для каждой квери сделай датасорс и на их события onDataCnahge вешай Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
ну и аналогично с хуманами в начале открываешь только скисок улиц, все остальные таблицы будут открыты автоматом ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2003, 11:06 |
|
Как правильно это сделать
|
|||
---|---|---|---|
#18+
нечего не понял ну все равно спасибо. только я на VB пишу, и впринципи нет разницы в чем обрабатовать, главно грамотно запрос сделать и базу тоже правильно спроектировать. И еще по базе, на твой взгляд она правильно спроектированна? или еще ей надо пару параметров засунуть? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2003, 11:16 |
|
Как правильно это сделать
|
|||
---|---|---|---|
#18+
с самого начала не очень внимательно прочитал Код: plaintext 1.
ошибка в том, что номера квартиры будут повторятся и непонятно чью фалимию возвращать, Вася из кв. 34 дома 14 по улице Строителей, либо Петя из кв. 34 дома 45 по улице еще какой-нить... Тогда либо используй в запросе (и соотвественно добавляй поля, id_dom, id_street) условие еще и по id_домов/id_улиц/ ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2003, 11:27 |
|
Как правильно это сделать
|
|||
---|---|---|---|
#18+
как бы глабной таблицей здесь является номера квартир в которых проживают жители по такой то улице, так что надо сделать такой запрос чтоб можно было по квартире на кокой то улице отобразить жителей (где жителей в квартире будет и 4 и 5 и 10), как лучше спроектировать базу в таком случаи, может че и надо добавить в таблици (дополнительные поля например код улици) пособетуйте, я просто первый раз сталкиваюсь с проектированием баз ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2003, 12:27 |
|
|
start [/forum/topic.php?fid=32&fpage=176&tid=1546771]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 233ms |
total: | 364ms |
0 / 0 |