Создание таблицы по слову-критерию отбора
Quadraaa
Дата: 07.11.2009 19:48:38
Всем доброго времени суток. Впервые увидел SQL сегодня, но несмотря на это имею необходимость сделать несколько задач, сижу, пытаюсь вникнуть.
Задание: Написать запрос, проверяющий слова в словарях на наличие (если слова нет хотя бы в одном из словарей - вывод его в отдельную таблицу).
Таблицы - словари, содержат слова и еще доп. информацию.
Очень прошу помочь, поиском пользовался, ответа не нашел. Как создавать таблицу по имеющимся данным - понял, как по тому, что является критерием - не могу понять :(
П-Л
Дата: 07.11.2009 19:54:41
Учебная задача или требование идет от реальной потребности ?
INSERT INTO ...
SELECT ... FROM (
SELECТ ... FROM Dictionary1 WHERE ...
UNION ALL SELECT ... FROM Dictionary2 WHERE ...
UNION ALL SELECT ... FROM Dictionary3 WHERE ...
...
)
ФЫ1
Quadraaa
Дата: 07.11.2009 19:58:18
На работу устраиваюсь, дали задание по SQL, хотя я его не знаю вообще. Сказали, что хотят посмотреть, как я могу учиться новому...так что скорее учебная:)
Спасибо за ответ.
П-Л
Дата: 07.11.2009 20:03:35
И как это будет выглядеть ? Вы работодателю потом распечатку с форума не забудете представить ?
Сколько, блин, работоискателей гордо пишут в резюме "SQL, ADO" а на деле ни на один практический вопрос ответить не могут... "Слышал" и "знаешь где посмотреть" недостаточно!
Quadraaa
Дата: 07.11.2009 20:14:07
Во-первых, я просил не делать за меня работу, а помочь с конкретным затыком. Теперь я пойму, как это делать, и в дальнейшем этот вопрос у меня не возникнет.
Во-ворых, я в резюме не писал ничего относительно знания SQL. Честно написал про базовый VBA - по нему тоже было задание, которое я сделал целиком сам, хотя и пришлось сильно напрячься, потому что мои знания были более базовые, чем требовалось для выполнения задания.
В-третьих, я студент и устраиваюсь на позицию стажера, так что мне положено интересоваться и учиться.
В-четвертых, я по образованию, пока еще не законченному, экономист-статистик и устраиваюсь по специальности, знать SQL мне неоткуда было (в университете не изучали, самостоятельно я пока только VBA хоть на каком-то приемлимом уровне освоил, т.к. загрузка по основным учебным дисциплинам неслабая).
Зря вы делаете какие-то далекоидущие выводы, не видя ситуации в целом, это узкий взгляд.
тоже учащийся
Дата: 07.11.2009 20:56:01
2 QuadraaaИспользовал частично идею П-Л
Вот пример:
t1 - таблица словарь1
t2 - таблица словарь2
t3 - таблица словарь3
checker - таблица искомых словарей
Такой запрос:
INSERT INTO total
SELECT *
FROM checker
WHERE checker.word NOT IN
(SELECT checker.word
FROM checker INNER JOIN [SELECT *
FROM t1
UNION
SELECT *
FROM t2
UNION
SELECT *
FROM t3]. AS a ON checker.word = a.word)
2 П-ЛПодкоректируете :) ? И, объясните, пожалуйста, зачем WHERE в вашем примере. Спасибо.
П-Л
Дата: 07.11.2009 21:53:57
Я специально не хочу приводить готовое решение первоначальной задачи. Оно абсолютно тривиально.
m
Дата: 07.11.2009 23:07:24
П-Л |
Я специально не хочу приводить готовое решение первоначальной задачи. Оно абсолютно тривиально. |
Да я понял... А словами
именно про where?
П-Л
Дата: 07.11.2009 23:22:44
Сначала надо из всех словарей сделать общую выбору слов. Если надо отбирать все слова, то условие WHERE при этом не нужно. Затем сравнить искомое слово с этой выборкой. Оно там либо есть либо нет. Сделать это можно либо вложенным подзапросом через IN либо через EXISTS либо соединив это слово с выборкой из словарей LEFT JOIN'ом.
гм,
Дата: 07.11.2009 23:28:26
П-Л |
Сначала надо из всех словарей сделать общую выбору слов. Если надо отбирать все слова, то условие WHERE при этом не нужно. Затем сравнить искомое слово с этой выборкой. Оно там либо есть либо нет. Сделать это можно либо вложенным подзапросом через IN либо через EXISTS либо соединив это слово с выборкой из словарей LEFT JOIN'ом. |
ТС |
... если слова нет хотя бы в одном из словарей - вывод его в отдельную таблицу |