powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Поиск по нескольким разделам
4 сообщений из 4, страница 1 из 1
Поиск по нескольким разделам
    #33060290
vitaliy14
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотел посоветоваться есть таблица с названиями, ценами итд книжек. Также
есть поле "Razdels" и десять названий разделов. И требуется организовать поиск по названиям разделов

что-то вроде

Код: plaintext
1.
2.
select kod_b,ImyaBook,Izdatelstvo,year_b,price
from Price_Books
where   Razdels like '%Бухучет%' 

вся сложность в том что одна книжка может быть в нескольких разделах. Вначале я просто в одном поле Razdels писал через пробел имена этих разделов и like -ом находил нужный. Но получилось что можно искать книгу только по одному критерию. А нужно сделать чтоб можно было искать по нескольким? У кого какие идеи есть?

СУБД sqlserver2000
...
Рейтинг: 0 / 0
Поиск по нескольким разделам
    #33060490
Фотография Va1entin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то навроде

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
Table Kniga
kod_knigi primary key
kod_izdatelstva foreign key references Izdatelstvo.kod_izdatelstva
imya_knigi
god_izdania

Table Izdatelstvo
kod_izdatelstva primary key
imya_izdatelstva

Table Razdel
kod_razdela primary key
imya_razdela

Table Kniga_Razdely
kod_knigi foreign key references Kniga.kod_knigi
kod_razdela foreign key references Razdel.kod_razdela

Table Cena_Knigi
kod_pozicii primary key
kod_knigi foreign key references Kniga.kod_knigi
cena

Create Procedure Poisk @Razdely --названия разделов через пробел
as
create table #kody_naidennyh_knig -- временная таблица для найденных кодов 
книг
(#kod_knigi as integer)

Разрезать строку @Razdely на составляющие
Цикл по разделам
    insert into #kody_naidennyh_knig
    select kod_knigi from Kniga_Razdely kr
    inner join Razdely r
        on kr.kod_razdela = r.kod_razdela
    where r.imya_razdela like ... -- здесь очередной шаблон
Конец цикла

select
    knk.kod_knigi,
    i.imya_izdatelstva,
    k.imya_knigi,
    k.god_izdania,
    c.cena
from #kody_naidennyh_knig knk
inner join Kniga k
    on knk.kod_knigi = k.kod_knigi
inner join Cena_Knigi c
    on k.kod_knigi = c.kod_knigi
inner join Izdatelstvo i
    on k.kod_izdatelstva = i.kod_izdatelstva


Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Поиск по нескольким разделам
    #33062417
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Va1entin
Что-то навроде

[...]
Как я понимаю, раздел из запроса нужно сравнивать на точное совпадение с Razdel. Поэтому лучше сначала сформировать временную таблицу разделов, отвечающих запросу, а затем используя Kniga_Razdely добыть все остальное одним запросом.
...
Рейтинг: 0 / 0
Поиск по нескольким разделам
    #33062781
Фотография Va1entin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, похоже так будет быстрее.

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Поиск по нескольким разделам
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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