Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2016, 06:13   #1
Shogun31337
 
Регистрация: 18.12.2016
Сообщений: 3
По умолчанию Построение SQL запроса в Access 2007

Доброго всем времени суток!
Прошу помощи в решении одной проблемки. А то я уже всю голову себе сломал. Суть в следующем - имеются 3 связанные таблицы: main, table1, table2. Таблица main относится к table1 и table2 как 1:М. В таблице main записаны имена (Иванов, Петров, Сидоров), в других таблицах числа. Мне нужно найти тех людей из таблицы main, которые удовлетворяют одновременно всем условиям отбора в других таблицах. Т.е. если имеем записи в таблицах
Иванов(1,2)(1,5)
Петров(2,3)(2,5)
Сидоров(3)(3,4)
и условия поиска (2,3)(2,5),
то должен найтись только Петров!!! У меня же получается, что находятся все... Пока по 1 условию, все получается, но если условий становится больше чем по одному... Запрос то работает верно - это я понимаю, я просто не могу понять как мне нужно его составить, чтобы работал так, как мне нужно.
Мой код запроса:
Код:
SELECT DISTINCT main.id, main.name
FROM(SELECT main.id, main.name
FROM (main INNER JOIN table1 ON main.id = table1.mainId)
INNER JOIN table2 ON main.id = table2.mainId
WHERE table1.col1 IN (1;2) AND table2.col1 IN (2;3))
Буду благодарен за любую подсказку!!!

Последний раз редактировалось Shogun31337; 18.12.2016 в 06:17.
Shogun31337 вне форума Ответить с цитированием
Старый 18.12.2016, 11:02   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Что за формат чисел? (2,3) = -2.3 ?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 18.12.2016, 14:27   #3
Shogun31337
 
Регистрация: 18.12.2016
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
Что за формат чисел? (2,3) = -2.3 ?
Абсолютно не важно какой формат данных. Запись Петров(2,3)(2,5) просто подразумевает, что в table1 имеются записи "2" и "3", а в table2 имеются записи "2" и "5", связанные с записью "Петров" таблицы main.
Shogun31337 вне форума Ответить с цитированием
Старый 18.12.2016, 15:22   #4
Shogun31337
 
Регистрация: 18.12.2016
Сообщений: 3
По умолчанию

Наверное, в первом посте слишком запутанно рассказал суть проблемы... Попробую попроще.
К примеру, есть таблицы, где main.ID и table1.uID поля связи:
Код:
main
  ID   |       Name   
----------------------        
1      |      Иванов          
2      |      Петров          
3      |      Cмирнов   

table1
  ID   |   uID   |       City
--------------------------
1      |     1    |   Москва
2      |     1    |   Санкт-Петербург
3      |     1    |   Екатеринбург
4      |     2    |   Москва
5      |     2    |   Новгород
6      |     2    |   Мурманск
7      |     3    |   Новгород
8      |     3    |   Санкт-Петербург
9      |     3    |   Севастополь
И есть условие поиска "Москва" и "Санкт-Петербург". Задача состоит в том, чтобы найти тех людей, у которых СОВПАДАЮТ ОБА УСЛОВИЯ.
Т.е. в данном случае должен найтись только Иванов (uID=1)!!!

Последний раз редактировалось Shogun31337; 18.12.2016 в 15:50.
Shogun31337 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Структура студенты +3-4 SQL запроса в Access mpremio Фриланс 1 25.01.2015 20:31
Написать 2 запроса на SQL для Access Dia.bolik Помощь студентам 0 27.11.2012 19:48
переделка sql запроса из 2003 в 2007 madace Microsoft Office Excel 1 21.09.2012 17:08
ADOQuery1.SQL.Add построение запроса ArtGrek БД в Delphi 3 15.04.2011 16:57
Программное выполнение SQL запроса на VBA Access chandrasecar Microsoft Office Access 2 02.06.2009 21:46