[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: запрос с подзапросом
dvs
такой вот запрос:
$sql = 'SELECT `title`, `description`,(SELECT `text` FROM `block` WHERE block.page_id = pages.id) `content` FROM `pages`,`block`';

такая вот ошибка:
Database query failed: Subquery returns more than 1 row


Что сделать чтоб в поле content попали записи(их несколько) из block.text?

ps строчке из таблицы pages соответствует несколько строчек из таблицы block



Спустя 10 минут, 20 секунд (26.04.2012 - 18:10) vital написал(а):
Cделать LEFT JOIN.

Спустя 5 минут, 14 секунд (26.04.2012 - 18:15) dvs написал(а):
Думал об этом, но тогда если сточке из page соответствует к примеру 3 сторочки из block, то после соединения будет 3 строчки, а нужна одна. Может конечно я что не понимаю в LEFT JOIN редко им пользовался

Спустя 52 минуты, 26 секунд (26.04.2012 - 19:08) johniek_comp написал(а):
или union()

Спустя 10 часов, 58 минут, 55 секунд (27.04.2012 - 06:07) dvs написал(а):
все гораздо проще оказывается, вот чего мне не хватало GROUP BY pages.id

Спустя 4 часа, 45 минут, 7 секунд (27.04.2012 - 10:52) vagrand написал(а):
Убери подзапрос, сделай LEFT или INNER JOIN (в зависимости от того всегда ли в таблице block есть записи соответствующие записям в таблице pages) и сделай group by в основном запросе.

Спустя 6 часов, 29 минут, 8 секунд (27.04.2012 - 17:21) ИНСИ написал(а):
Попробуй так
SELECT `c`.`id`, `c`.`title`, `c`.`description`,`b`.`text`
FROM `content` AS `c`
LEFT JOIN `block` AS `b`
ON `b`.`page_id` = `c`.`id`

Спустя 1 минута, 22 секунды (27.04.2012 - 17:22) ИНСИ написал(а):
Если хочешь со своим запросом, то попробуй так:
SELECT `id`, `title`, `description`, `content`, (SELECT `text` FROM `block` WHERE `page_id` = `p`.`id` LIMIT 1) FROM `pages` AS `p`

Спустя 3 часа, 59 минут, 53 секунды (27.04.2012 - 21:22) dvs написал(а):
я справился уже, тема закрыта, всем спасибо! От под запроса избавился конечно как только узнал про GROUP BY pages.id имено его мне и не хватало чтоб воспользоваться LEFT JOIN
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.