Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
sql query
|
|||
|---|---|---|---|
|
#18+
Так ... вот одна таблица - doc ------------- DOCID DOCNAME 1 history 2 language ... ------------- (DOCID уникален) Вторая таблица - kword --------------- DOCID KEYWORD 1 country 1 state 1 live 2 language 2 translation ... ------------- (пара DOCID+KEYWORD уникальна) Надо вывести все документы включающие 3 KEYWORDа 'document', 'language', 'lingual' все 3 в каждом документе ... Как сделать ? select d.DOCID, d.DOCNAME from doc d, kword k where d.DOCID = k.DOCID а дальше что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2002, 00:04 |
|
||
|
sql query
|
|||
|---|---|---|---|
|
#18+
Приветствую, Если я Вас правильно понял, то Вам необходимо вывести набор (DOCID, DOCNAME), содержащий только те документы, для которых в таблице kword содержатся записи с заданными значениями поля KEYWORD. Тогда вот возможные запросы: \n-- Создаем переменные типа 'таблица' и наполняем их тестовыми данными DECLARE @doc TABLE (DOCID int identity(1,1), DOCNAME varchar(200)) DECLARE @kword TABLE (DOCID int, KEYWORD varchar(200)) INSERT @doc (DOCNAME) VALUES ('history') INSERT @doc (DOCNAME) VALUES ('language') INSERT @kword VALUES (1, 'country') INSERT @kword VALUES (1, 'state') INSERT @kword VALUES (1, 'live') INSERT @kword VALUES (2, 'language') INSERT @kword VALUES (2, 'translation') INSERT @kword VALUES (2, 'document') INSERT @kword VALUES (2, 'lingual') -- Вариант 1 SELECT DISTINCT d.DOCID, d.DOCNAME FROM @doc d INNER JOIN @kword k1 ON d.DOCID = k1.DOCID INNER JOIN @kword k2 ON d.DOCID = k2.DOCID INNER JOIN @kword k3 ON d.DOCID = k3.DOCID WHERE k1.KEYWORD = 'document' AND k2.KEYWORD = 'language' AND k3.KEYWORD = 'lingual' -- Вариант 2 SELECT DISTINCT d.DOCID, d.DOCNAME FROM @doc d WHERE exists(SELECT 1 FROM @kword k1 WHERE k1.KEYWORD = 'document' AND k1.DocID = d.DocID) AND exists(SELECT 1 FROM @kword k2 WHERE k2.KEYWORD = 'language' AND k2.DocID = d.DocID) AND exists(SELECT 1 FROM @kword k3 WHERE k3.KEYWORD = 'lingual' AND k3.DocID = d.DocID) Удачи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2002, 04:18 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=3486&tid=1823184]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 267ms |
| total: | 377ms |

| 0 / 0 |
