powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Помогите с запросом
12 сообщений из 12, страница 1 из 1
Помогите с запросом
    #36756347
Prophet13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Существует 2 таблицы.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
CREATE TABLE [NETWORK] 
(
    [ID] INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
    [CR_DATE] TEXT,
    [ID_AUTHOR] TEXT,
    [COMMENT] TEXT
)

CREATE TABLE [NET_CONFIG] 
(
    [ID] INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
    [CR_DATE] DATE,
    [AUTHOR] TEXT,
    [INFO] TEXT,
    [ENABLED] BOOLEAN
)

и таблица связности

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
CREATE TABLE [NETWORK_HAS_NET_CONFIG] 
(
    [ID_NETWORK] INTEGER NOT NULL REFERENCES [NETWORK]
    (
        ID
    ),
    [ID_NCONFIG] INTEGER NOT NULL REFERENCES [NET_CONFIG]
    (
        ID
    ),
    PRIMARY KEY 
    (
        [ID_NCONFIG],
        [ID_NETWORK]
    )
)

Примеры инсерта:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
INSERT INTO NETWORK (CR_DATE, ID_AUTHOR, COMMENT) VALUES ('22.07.2010', 'prophet', 'Hoi');
INSERT INTO NETWORK (CR_DATE, ID_AUTHOR, COMMENT) VALUES ('22.07.2010', 'prophet', 'PisPis');
INSERT INTO NETWORK (CR_DATE, ID_AUTHOR, COMMENT) VALUES ('22.07.2010', 'prophet', 'Oppa');

INSERT INTO NET_CONFIG (CR_DATE, AUTHOR, INFO) VALUES ('11.06.2010', 'Author', 'dsfd', '');
INSERT INTO NET_CONFIG (CR_DATE, AUTHOR, INFO) VALUES ('23.07.2010', 'Author', 'hgfhfg', '');
INSERT INTO NET_CONFIG (CR_DATE, AUTHOR, INFO) VALUES ('23.07.2010', 'prophet', 'dsfsdf', '');

Связи:

INSERT INTO NETWORK_HAS_NET_CONFIG (ID_NETWORK, ID_NCONFIG) VALUES ( 1 ,  1 );
INSERT INTO NETWORK_HAS_NET_CONFIG (ID_NETWORK, ID_NCONFIG) VALUES ( 2 ,  2 );
INSERT INTO NETWORK_HAS_NET_CONFIG (ID_NETWORK, ID_NCONFIG) VALUES ( 1 ,  3 );

Требуется выбрать Конфигурации принадлежащие определённой сети.
Запрос
Код: plaintext
SELECT ID,CR_DATE,AUTHOR FROM NET_CONFIG WHERE ID = (SELECT ID_NCONFIG FROM NETWORK_HAS_NET_CONFIG WHERE ID_NETWORK = '1')
Даёт только 1 конфигурацию вместо 2-х.
...
Рейтинг: 0 / 0
Помогите с запросом
    #36756728
Prophet13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вроде нашел подходящий запрос:
Код: plaintext
SELECT ID,CR_DATE,AUTHOR FROM NET_CONFIG WHERE '9' IN (SELECT ID_NETWORK FROM NETWORK_HAS_NET_CONFIG WHERE NET_CONFIG.ID = NETWORK_HAS_NET_CONFIG.ID_NCONFIG)
Может кто знает как сделать лучше?
...
Рейтинг: 0 / 0
Помогите с запросом
    #36757165
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
select conf.*
from NET_CONFIG conf
join NETWORK_HAS_NET_CONFIG has
      on has.ID_NCONFIG=conf.ID and has.ID_NETWORK= 1 
...
Рейтинг: 0 / 0
Помогите с запросом
    #36757252
Prophet13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owl, спасибо. Запрос побыстрее получается, видимо изза отсутствия подзапроса.
...
Рейтинг: 0 / 0
Помогите с запросом
    #36773764
Prophet13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Появилась новая проблемка. Необходимо установить значение 0 колонки ENABLED таблицы NET_CONFIG только для тех конфигураций которые принадлежат выбранной сети.
...
Рейтинг: 0 / 0
Помогите с запросом
    #36775105
Prophet13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вариант решения :
Код: plaintext
1.
UPDATE NET_CONFIG SET ENABLED= 0  WHERE ID=(SELECT conf.ID 
FROM NET_CONFIG conf JOIN NETWORK_HAS_NET_CONFIG has ON has.ID_NCONFIG=conf.ID AND has.ID_NETWORK= 1 )
даёт обнуление только первой конфигурации которая принадлежит к сети.
...
Рейтинг: 0 / 0
Помогите с запросом
    #36775738
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проще надо быть.
Код: plaintext
UPDATE NET_CONFIG SET ENABLED= 0  WHERE ID=(SELECT ID_NCONFIG FROM NETWORK_HAS_NET_CONFIG WHERE ID_NETWORK= 1 )
...
Рейтинг: 0 / 0
Помогите с запросом
    #36775761
Prophet13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не работает ( Обнуляет только первую конфу для сети.
...
Рейтинг: 0 / 0
Помогите с запросом
    #36775921
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
UPDATE NET_CONFIG SET ENABLED= 0  WHERE ID in (SELECT ID_NCONFIG FROM NETWORK_HAS_NET_CONFIG WHERE ID_NETWORK= 1 )
...
Рейтинг: 0 / 0
Помогите с запросом
    #36776675
Prophet13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо огромное, помогло. Самым позитивным является то что если возникнет аналогичный вопрос уже будет известен ответ)
...
Рейтинг: 0 / 0
Помогите с запросом
    #36847750
Prophet13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Появилась новая проблемка
Есть 2 таблицы:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
CREATE TABLE [RMATRIX] 
(
    [ID_DEV_A] INTEGER NOT NULL REFERENCES [DEVICES](ID),
    [ID_DEV_B] INTEGER NOT NULL REFERENCES [DEVICES](ID),
    [ID_NETWORK] INTEGER NOT NULL REFERENCES [NETWORK](ID),
    [FLAGS] INTEGER,  
    PRIMARY KEY ([ID_DEV_B], [ID_DEV_A])
)

CREATE TABLE [DEVICES] 
(
    [ID] INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
    [ID_TYPE] INTEGER NOT NULL REFERENCES [DEV_TYPES](ID),
    [LOCATION] TEXT,
    [DESCRIBE] TEXT,
    [ENABLED] BOOLEAN
)

RMATRIX - таблица связности. Необходимо зная DESCRIBE устройства выбрать DESCRIBE его пар, причем и со стороны ID_DEV_A и ID_DEV_B.
...
Рейтинг: 0 / 0
Помогите с запросом
    #36850231
Prophet13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот что получилось
Код: plaintext
1.
2.
3.
4.
SELECT DESCRIBE FROM DEVICES WHERE ID IN
(SELECT ID_DEV_B FROM RMATRIX WHERE ID_DEV_A =
(SELECT ID FROM DEVICES WHERE DESCRIBE = 'N1-D1') UNION
SELECT ID_DEV_A FROM RMATRIX WHERE ID_DEV_B =
(SELECT ID FROM DEVICES WHERE DESCRIBE = 'N1-D1'))
Может можно проще?
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Помогите с запросом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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