SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 26.11.2009 14:47:45

AlexMcArrow
Участник
Зарегистрирован: 26.11.2009
Сообщений: 2

Выборка всех строк с одним UID (3-х столбцовая структура)

Имеем:
Таблица: `user` со следующей архитектурой
uid - name - value
пример:
1 - login - user
1 - pass - 12345
1 - email - mail@mail.com
2 - login - admin
2 - pass - 54321
2 - email - admin@mail.com
Вопрос:
Необходимо произвести выборку данных при условии
`name`='login' and `value`='user'
!!!! но получить не только строку с точным соответствие но и все строки имеющие тот же UID, что содержит строка соответствующая условию
пример:

SELECT * FROM `user` WHERE `name`='login' and `value`='user'

результат:
1 - login - user

а хочется результат:
1 - login - user
1 - pass - 12345
1 - email - mail@mail.com

P.S.: я не дебил, и не идиот, отказаться от архитектуры нельзя. уровень знания MySQL - сводиться к простейшим запросам -> по этому и задаю вопрос.

P.P.S.: что-то получилось
SELECT u.uid,u.name,u.value FROM user ,user AS u WHERE user.name = 'login' AND user.value = 'user' AND u.uid = user.uid

результат соответствует требуемому (большое спасибо: мозгам и Nivacat 8 for MySQL)
идем дальше
а если нужно не только
`name`='login' and `value`='user'
но и сразу проверить пароль
`name`='pass' and `value`='12345'

Отредактированно AlexMcArrow (26.11.2009 15:32:24)

Неактивен

 

#2 26.11.2009 15:29:39

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Выборка всех строк с одним UID (3-х столбцовая структура)

SELECT * FROM `user` WHERE uid IN (SELECT uid FROM `user` WHERE `name`='login' and `value`='user');

Неактивен

 

#3 26.11.2009 15:53:27

AlexMcArrow
Участник
Зарегистрирован: 26.11.2009
Сообщений: 2

Re: Выборка всех строк с одним UID (3-х столбцовая структура)

Большое спасибо...
Решение от vasya и мой мозг, помогли прийти к правильному решению

SELECT user.uid,user.name,user.value FROM user,userAS u ,userAS u2 WHERE u.name = 'login' AND u.value = 'user' AND u2.name = 'pass' AND u2.value = '12345' AND user.uid = u.uid AND user.uid = u2.uid

--------------------------
Результат: люди.. делайте простые таблицы.. (шутка) иначе сожжете себе мозг (реальность).

Отредактированно AlexMcArrow (26.11.2009 15:54:30)

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson