|
|
|
| Такая проблема:
как такой запрос написать правильно:
$database->setQuery("SELECT * FROM users");
$list = $database->loadObjectList();
foreach($list as $var)
{
$database->setQuery("SELECT * FROM links WHERE id='{$var->userid}'");
$list = $database->loadObjectList();
foreach($list as $var2)
{
$database->setQuery("SELECT * FROM posts WHERE id='{$var2->postid}'");
$list = $database->loadObjectList();
foreach($list as $var3)
echo $var->user.' '.$var3->post;
}
}
Таблицы:
users - пользователи, колонки: id (auto increment), user - имя пользователя, postid - id должности.
posts - должности, колонки: id (auto increment), post - название должности.
links - связи, колонки userid - id пользователя, postid - id пользователя.
Если например 100 пользователей то будет 100 запросов к базе post и 100 запросов к базе links.
И правильно ли я создал таблицу links? Она нужна изза того что у одного пользователя должна быть возможность добавления неограниченного количества должностей. | |
|
|
|
|
|
|
|
для: tim-ua
(18.02.2009 в 15:57)
| | Почему вы считаете, что текущий запрос(ы) неправильный, что вы ожидаете от оптимизации? | |
|
|
|
|
|
|
|
для: tim-ua
(18.02.2009 в 15:57)
| | может что-нить в этом роде?
<?
$sql = '
SELECT
a.`user`,
GROUP_CONCAT(b.`post` SEPARATOR", ") AS `postes`
FROM
`users` a
LEFT JOIN `posts` b ON b.`id`=a.`postid`
GROUP BY a.`id`
';
$database->setQuery($sql);
$list = $database->loadObjectList();
foreach($list as $var)
echo $var->user . ' (' . $var->postes . ')';
?>
|
таблицу links я бы удалил вообще.. | |
|
|
|