Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> MySQL: выбор данных из одного столбца, и представление их под разными именами 
V
    Опции темы
XAKEPEHOK
  Дата 20.3.2012, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Долго пытался сформировать заголовок темы. Подскажите пожалуйста как быть в такой ситуации.

У меня есть таблица пользователей user, содержащей поля id (INT), username (VARCHAR), group (INT), banned (TINYINT)
Есть 2 группы: id 1 - рекламодатели и id 2 - партнеры

Код

id    username       group    banned
1     Timur          1        0
2     Ratmir         1        0
3     Slavik         2        0
4     Kalash         2        0


Еще есть таблица взаимодействий пользователей actions с полями  partnerID (INT), reklamID (INT), summ (DOUBLE)

Код

partnerID        reklamID        summ
3                1               50
4                2               90
4                1               89
3                1               63


Дамп базы-примера приложен к посту.

Я осуществляю выборку из этих двух таблиц

Код

SELECT `user`.`id`, `actions`.`summ`
FROM `user`, `actions`
WHERE `user`.`banned`=0 AND (actions.reklamID = user.ID AND user.group=1) 


И в результате получаю что-то типа

Код

id    summ
1      50
1      89
1      63
2      90


Т.е. в id я получаю id пользователя, который находится в группе со значением = 1, а мне надо получить в этом запросе еще и id пользователя с группой = 2

как это сделать? Ведь имена полей одинаковые. Подскажите пожалуйста!

Это сообщение отредактировал(а) XAKEPEHOK - 20.3.2012, 13:58

Присоединённый файл ( Кол-во скачиваний: 1 )
Присоединённый файл  test.sql 1,44 Kb
PM ICQ   Вверх
gta4kv
Дата 20.3.2012, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


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

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



что мешает сделать в таком духе:

Код

select a.id, b.id as otherId from table1 a, table2  

?

Это сообщение отредактировал(а) gta4kv - 20.3.2012, 15:05
PM MAIL   Вверх
XAKEPEHOK
Дата 21.3.2012, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Всяко ковырялся, а можно пример на моем примере?
PM ICQ   Вверх
XAKEPEHOK
Дата 22.3.2012, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Сделал! Блин, все как всегда просто. Я не понимал как назначаются алиасы для таблиц. 
Запрос можно оптимизировать, на т.к. это пример, то для моего первого поста запрос будет таков

Код

SELECT reklam.id as reklamID , partner.id as partnerID, actions.summ
FROM user as reklam, user as partner, actions
WHERE reklam.banned=0 AND
((actions.reklamID = reklam.ID AND reklam.group=1) or (actions.partnerID = partner.ID AND partner.group=2)) 
AND reklam.ID<>partner.ID

PM ICQ   Вверх
Photon
Дата 25.3.2012, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Злобный программер
**


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

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



А почему не сделать просто?
Код

SELECT `user`.`id`, `actions`.`summ`, `user`.`group`
FROM `user`, `actions`
WHERE `user`.`banned`=0 AND actions.reklamID = user.ID


Получишь всех пользователей вместе с номерами группы


--------------------
With best regards..
PM MAIL ICQ Skype GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




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


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

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