Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 помогите пожалуйста разобраться с запросом: where + where  [new]
vladka63
Member

Откуда:
Сообщений: 1688
Здрасте)

где-то ошибаюсь..
есть две таблицы: Таблица1 и Таблица2

С чем нет проблем:
На первом шаге Таблица2 заполняется из таблицы1 и еще нескольких таблиц.
Т.е пользователю выводится на страницу возможность выбрать - выбирает и выбранное записывается в таблицу2.

вот с этим поблема:
теперь нужно произвести обратную операцию: по данным в таблице2 вывести некий срез таблицы1

делаю так:

// пишу запрос на выборку из таблицы1:
SELECT поле1, поле2 FROM таблица1
// так как таблица выводится не вся, а на основании таблицы2
WHERE (таблица2.поле1 = таблица1.поле1 , таблица2.поле2= таблица1.поле2)
// но нужно что бы поля1 и 2 определялись : какому пользователю принадлежит
поэтому к WHERE применям опять WHERE
WHERE (select поле1, поле2 from таблица2 where поле3)

итого:
SELECT поле1, поле2 FROM таблица1 WHERE ((таблица2.поле1 = таблица1.поле1 , таблица2.поле2= таблица1.поле2) WHERE (select поле1, поле2 from таблица2 where поле3))


правильно ли сформирован запрос?

спасибо.
24 дек 09, 00:46    [8110602]     Ответить | Цитировать Сообщить модератору
 Re: помогите пожалуйста разобраться с запросом: where + where  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Парсинг вашего последнего запроса вывел:
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near ','.
Msg 4145, Level 15, State 1, Line 1
An expression of non-boolean type specified in a context where a condition is expected, near ')'.
Да и некошерно в предикате описывать отношение между таблицами. Почитайте про JOIN и пользуйте его, тогда всё на место и встанет.
24 дек 09, 06:23    [8110735]     Ответить | Цитировать Сообщить модератору
 Re: помогите пожалуйста разобраться с запросом: where + where  [new]
vladka63
Member

Откуда:
Сообщений: 1688
tpg,

JOIN не подойдет..
у него иной смысл..
а мне нужно выбрать на основании входящего параметра, два параметра и потмо их передать итоговому запросу.
24 дек 09, 13:14    [8112812]     Ответить | Цитировать Сообщить модератору
 Re: помогите пожалуйста разобраться с запросом: where + where  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
vladka63
JOIN не подойдет..
у него иной смысл..
Неужели?..
Как раз
FROM таблица1, таблица2
WHERE таблица2.поле1 = таблица1.поле1 and таблица2.поле2= таблица1.поле2
эквивалентно
FROM таблица1
INNER JOIN таблица2 ON таблица2.поле1 = таблица1.поле1
      and таблица2.поле2= таблица1.поле2

Может вам EXISTS подойдет?..
24 дек 09, 13:54    [8113139]     Ответить | Цитировать Сообщить модератору
 Re: помогите пожалуйста разобраться с запросом: where + where  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Да... Забыл совсем - http://www.firststeps.ru/sql/sql1.html

Сообщение было отредактировано: 24 дек 09, 14:49
24 дек 09, 13:56    [8113152]     Ответить | Цитировать Сообщить модератору
 Re: помогите пожалуйста разобраться с запросом: where + where  [new]
vladka63
Member

Откуда:
Сообщений: 1688
tpg,

а мне нужно выбрать на основании входящего параметра, два параметра и потмо их передать итоговому запросу.
24 дек 09, 14:44    [8113564]     Ответить | Цитировать Сообщить модератору
 Re: помогите пожалуйста разобраться с запросом: where + where  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
vladka63
tpg,

а мне нужно выбрать на основании входящего параметра, два параметра и потмо их передать итоговому запросу.
Ну, тогда читаем - Рекомендации...
Особенно, п.6!
24 дек 09, 14:51    [8113621]     Ответить | Цитировать Сообщить модератору
 Re: помогите пожалуйста разобраться с запросом: where + where  [new]
vladka63
Member

Откуда:
Сообщений: 1688
tpg,

да не ты не обижайся пожалуйста..)
я просто говорю о том, что мне нужно не объединить вывод на станицу инфы с разных таблиц, а сделать вложенные параметры..

и что бы тому человеку, который может посоветовать толком не копаться в названии моих таблиц
показал схему, как делаю:

SELECT поле1, поле2 FROM таблица1 WHERE ((таблица2.поле1 = таблица1.поле1 , таблица2.поле2= таблица1.поле2) WHERE (select поле1, поле2 from таблица2 where поле3))

начальный входящий параметр - поле3
на основании него должны получаться поля1 и 2 в таблице 2 и вот уже они являются параметрами при совпадении с полями таблицы 1.
24 дек 09, 14:57    [8113678]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить