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

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

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

Вы не зашли.

#1 19.08.2008 16:16:48

nws
Участник
Зарегистрирован: 19.08.2008
Сообщений: 6

LEFT JOIN - НУЖНА ПОМОЩЬ!

Есть 2 таблицы :

Код:

CREATE TABLE IF NOT EXISTS `poll` (
  `id` int(11) NOT NULL auto_increment,
  `question` varchar(255) collate utf8_unicode_ci NOT NULL,
  `status` int(11) NOT NULL,
  PRIMARY KEY  (`id`)
) ;

CREATE TABLE IF NOT EXISTS `pollrow` (
  `id` int(11) NOT NULL auto_increment,
  `poll_id` int(11) NOT NULL,
  `answer` varchar(255) collate utf8_unicode_ci NOT NULL,
  `vote` int(11) NOT NULL default '0',
  PRIMARY KEY  (`id`),
  KEY `poll_id` (`poll_id`)
) ;

Делаю запос:

Код:

SELECT * FROM pollrow
INNER JOIN poll
ON pollrow.poll_id = poll.id
WHERE poll.status = 1

Результат:

Код:

Array
(
    [0] => Array
        (
            [id] => 1
            [poll_id] => 1
            [answer] => 1
            [vote] => 0
            [question] => Сколько будет 2+2 ?
            [status] => 1
        )

    [1] => Array
        (
            [id] => 1
            [poll_id] => 1
            [answer] => 2
            [vote] => 0
            [question] => Сколько будет 2+2 ?
            [status] => 1
        )

    [2] => Array
        (
            [id] => 1
            [poll_id] => 1
            [answer] => 3
            [vote] => 0
            [question] => Сколько будет 2+2 ?
            [status] => 1
        )

    [3] => Array
        (
            [id] => 1
            [poll_id] => 1
            [answer] => 4
            [vote] => 0
            [question] => Сколько будет 2+2 ?
            [status] => 1
        )
)

Проблема в том, что id везде равно 1 (pollrow.id)
Помогите составить запрос, чтобы результат был:

Код:

Array
(
    [0] => Array
        (
            [id] => 1
            [poll_id] => 1
            [answer] => 1
            [vote] => 0
            [question] => Сколько будет 2+2 ?
            [status] => 1
        )

    [1] => Array
        (
             id] => 2 
            [poll_id] => 1
            [answer] => 2
            [vote] => 0
            [question] => Сколько будет 2+2 ?
            [status] => 1
        )

    [2] => Array
        (
            [id] => 3
            [poll_id] => 1
            [answer] => 3
            [vote] => 0
            [question] => Сколько будет 2+2 ?
            [status] => 1
        )

    [3] => Array
        (
            [id] => 4
            [poll_id] => 1
            [answer] => 4
            [vote] => 0
            [question] => Сколько будет 2+2 ?
            [status] => 1
        )
)

Неактивен

 

#2 19.08.2008 16:34:59

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: LEFT JOIN - НУЖНА ПОМОЩЬ!

Проблема в том, что у Вас просто пересекаются названия полей.

SELECT *, pollrow.id AS pid FROM pollrow
INNER JOIN poll
ON pollrow.poll_id = poll.id
WHERE poll.status = 1

Неактивен

 

#3 19.08.2008 16:58:27

nws
Участник
Зарегистрирован: 19.08.2008
Сообщений: 6

Re: LEFT JOIN - НУЖНА ПОМОЩЬ!

thx

Неактивен

 

Board footer

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