![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
savmp |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 260 Регистрация: 27.7.2009 Где: Геленджик Репутация: -2 Всего: -16 |
ЕСТЬ ВЫБОРКА из базы данных.
но она работает не так как нужно SELECT * FROM TABLE WHERE (GO_A = '001' OR GO_B = '002') AND (TARIF = 'VIP' OR TARIF = 'FREE') ЧТО нужно написать в место AND (я так думаю, что в место AND, возможно и нет) чтобы смысл выборки был таков: ВЫБЕРИ * все поля из таблицы ГДЕ (GO_A = '001' OR GO_B = '002') И ИМЕННО ТЕ В КОТОРЫХ ЕСТЬ (TARIF = 'VIP' OR TARIF = 'FREE') Я уже голову сломал... думая как это можно реализовать. СО словом AND получается, что вытаскиваются и те и те... А нужно вытаскивать только (GO_A = '001' OR GO_B = '002') у которых есть (TARIF = 'VIP' OR TARIF = 'FREE') Добавлено через 13 минут и 20 секунд Я не знаю... но возможно ли сделать выборку в выборке? Или как-то так? Типа двойной выборки... вторая выборка выбирает из результата первой... ИЛИ как-то так. Добавлено через 14 минут и 37 секунд Смешная идея, но всё таки!)) Это сообщение отредактировал(а) savmp - 2.2.2012, 22:43 |
|||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 1 Всего: 130 |
Долго думал, так и не понял, чем не подходит написанный тобой запрос. Какие "и те, и те" выбираются?
Добавлено через 4 минуты и 37 секунд Суть та же будет:
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
tzirechnoy |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: 2 Всего: 16 |
Написанный запрос должэн работать именно так, как Вы и описали.
|
|||
|
||||
savmp |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 260 Регистрация: 27.7.2009 Где: Геленджик Репутация: -2 Всего: -16 |
НЕТ!)) SELECT * FROM TABLE WHERE (GO_A = '001' OR GO_B = '002') AND (TARIF = 'VIP' OR TARIF = 'FREE') ВОТ ЭТОТ ЗАПРОС РАБОТАЕТ НА ВСЕ 100% НО он вытаскивает не то, что нужно... В этом запросе вытаскиваются ВЫТАШИ (GO_A = '001' OR GO_B = '001') И (TARIF = 'VIP' OR TARIF = 'FREE') А НУЖНО (GO_A = '001' OR GO_B = '002') У КОТОРЫХ (TARIF = 'VIP' OR TARIF = 'FREE') ТАБЛИЦА ID GO_A GO_B TARIF 1 001 001 VIP 2 001 004 ECONOM 3 003 002 VIP 4 003 001 FREE 5 002 002 VIP Добавлено @ 23:59 Если к этой таблице: ID GO_A GO_B TARIF 1 001 001 VIP 2 001 004 ECONOM 3 003 002 VIP 4 003 001 FREE 5 002 002 VIP ИСПОЛЬЗОВАТЬ МОЙ ЗАПРОС: SELECT * FROM TABLE WHERE (GO_A = '001' OR GO_B = '001') AND (TARIF = 'VIP' OR TARIF = 'FREE') ТО мы получим: 1 001 001 VIP 2 001 004 ECONOM 3 003 002 VIP 4 003 001 FREE 5 002 002 VIP А НУЖНО ПОЛУЧИТЬ 1 001 001 VIP 4 003 001 FREE Это сообщение отредактировал(а) savmp - 3.2.2012, 00:02 |
|||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 1 Всего: 130 |
Запрос:
Результат: ![]() -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
![]() Добавлено через 1 минуту и 19 секунд ![]() -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
ndbn |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 17.9.2010 Репутация: нет Всего: нет |
в скобочки возьмите всё, после where. судя по скриншоту вы делаете выбрку не с and а с or между скобками
Это сообщение отредактировал(а) ndbn - 9.2.2012, 22:31 |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |