![]() |
Задавайте вопросы, мы ответим
Вы не зашли.
Есть 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
)
)Неактивен

Проблема в том, что у Вас просто пересекаются названия полей.
SELECT *, pollrow.id AS pid FROM pollrow
INNER JOIN poll
ON pollrow.poll_id = poll.id
WHERE poll.status = 1
Неактивен