Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите составить запрос правильно 
:(
    Опции темы
webaliser
Дата 8.9.2009, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 15.12.2007

Репутация: нет
Всего: нет



Добрый день, господа. Помогите неучу составить запрос, забыл я SQL уже давно, помню только мелочи. Их оказалось не достаточно.

Есть таблица
  • ID - autoinc
  • IDENT - INT10
  • KEY - VARCHAR
  • VALUE - LONGBLOB

В данной таблице хранятся разные связки key/value с общим IDENT. Мне нужно выбрать все IDENT, VALUE, где KEY = 'A' или KEY = 'B'. 
Но одна строка выдачи должна выглядеть так:

IDENT | VALUE as A (где KEY = 'A') |  VALUE as B (где KEY = 'B')

Спасибо за помощь
PM MAIL   Вверх
Akina
Дата 8.9.2009, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Можно ли гарантировать, что пара IDENT+VALUE - уникальна? по крайней мере для KEY = 'A' или 'B'


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
webaliser
Дата 8.9.2009, 23:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 15.12.2007

Репутация: нет
Всего: нет



IDENT - идентификатор, группирующий множество разных пар KEY/VALUE в одной таблице.

IDENT/KEY уникальна
IDENT/KEY/VALUE - соответственно
IDENT/VALUE - значение может быть одинаково при разных KEY
PM MAIL   Вверх
Akina
Дата 9.9.2009, 08:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Код

select t1.ident as ident, t1.value as value_a, t2.value as value_b
from table as t1
inner join table as t2
on t1.ident=t2.ident
where t1.key='A'
and t2.key='B'



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
webaliser
Дата 9.9.2009, 09:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 15.12.2007

Репутация: нет
Всего: нет



с Join'ами у меня всегда были проблемы... smile Спасибо

Скажите, не озадачит ли систему то, что таких полей выбирается не 2, а около 40 (из около 100) ?
PM MAIL   Вверх
Akina
Дата 9.9.2009, 09:09 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



 smile 
Цитата(webaliser @  9.9.2009,  10:01 Найти цитируемый пост)
Скажите, не озадачит ли систему то, что таких полей выбирается не 2, а около 40 (из около 100)

Озадачит? да она офигеет! в запросе выбирается три поля, а надо, оказывается, сто...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Zloxa
Дата 9.9.2009, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



Все прелести EAV налицо  smile 



--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.0883 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.