Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Базы данных MySQL

  Все выпуски  

RusFAQ.ru: Базы данных SQL


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Базы данных SQL

Выпуск № 81
от 26.04.2006, 00:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 277, Экспертов: 38
В номере:Вопросов: 1, Ответов: 2


Вопрос № 40900: Есть таблица: pole1|pole2|pole3| --------------------- zapis1|1|3| zapis1|1|1| zapis2|2|4| zapis2|2|5| zapis2|2|2| Я например, хочу извлечь со значение 3 и 4 в столбе pole3, но только если pole2 совпадает. Т.е. в данно...

Вопрос № 40.900
Есть таблица:
pole1|pole2|pole3|
---------------------
zapis1|1|3|
zapis1|1|1|
zapis2|2|4|
zapis2|2|5|
zapis2|2|2|
Я например, хочу извлечь со значение 3 и 4 в столбе pole3, но только если pole2 совпадает. Т.е. в данном примере не совпадает
Отправлен: 20.04.2006, 23:56
Вопрос задал: Stamm (статус: Студент)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Филатов Евгений Геннадьевич
Здравствуйте, Stamm!

Создал таблицу и заполнил такими данными
Pole1 Pole2 Pole3
zapis1 1 3
zapis1 1 1
zapis2 2 4
zapis2 2 5
zapis2 2 2
zapis3 1 1
zapis3 1 2
zapis3 2 3
zapis3 1 4

Необходимо отобрать все записи, у которых Pole3 равно 3 или 4 и совпадает Pole2
SQL запрос :

SELECT *
FROM tabl t1
where (select count(t2.pole1) from tabl t2 where t2.pole2=t1.pole2 and t2.pole3 in (3,4))>1 and t1.pole3 in (3,4)

Возвращаются записи

Pole1 Pole2 Pole3
zapis1 1 3
zapis2 2 4
zapis3 2 3
zapis3 1 4

Если я не так понял смысл вопроса, пиши.
Ответ отправил: Филатов Евгений Геннадьевич (статус: 2-ой класс)
Ответ отправлен: 21.04.2006, 14:37
Оценка за ответ: 5

Отвечает: Игорь Елизаров
Здравствуйте, Stamm!
Пксть табличка называется Tab тогда запрос будет примерно таким

select tab.pole1,tab.pole2, tab.pole3
from tab
inner join tab t1 on tab.pole2 = t1.pole2
where tab.pole3 in (3, 4)
то есть создаем еще один образ той же самой таблицы и связываем их между собой по полю 2 и отбираем по значению 3 или 4 из поля 3

Ответ отправил: Игорь Елизаров (статус: 3-ий класс)
Ответ отправлен: 21.04.2006, 17:22
Оценка за ответ: 5
Комментарий оценки:
ага, теперь все понятно....


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.30 от 09.04.2006
Яндекс Rambler's Top100

В избранное