🧙Конкурс сказок!
$help='Вопросы//Помощь';
(OFF) skinhead620 (B) 20 окт 2018

Объединение SQl запроса.

Всем привет. Вот ломаю голову над такой задачей:
Тут все понятно.
<?
$q = $pdo->query("SELECT * FROM `chat`,`user` WHERE `chat`.`id_user` = `user`.`id` ORDER BY `chat`.`time` DESC LIMIT 10");

while($post = $q->fetch(PDO::FETCH_ASSOC)){

echo $post['login'].'<br> '.$post['msg'].'</br>';

}
Задача:
<?
$q = $pdo->query("SELECT * FROM `chat`,`user` WHERE `chat`.`id_user` = `user`.`id` ORDER BY `chat`.`time` DESC LIMIT 10");

while($post = $q->fetch(PDO::FETCH_ASSOC)){

$chat_user = $pdo->query("SELECT * FROM `user` WHERE `id` = '".$post['to_user']."' LIMIT 1")->fetch();

echo $post['login'].'<br> '.$chat_user['login'].' '.$post['msg'].'</br>';

}
Избавится от вложенного запроса после while(). Как? Остались еще тут люди?

Комментарии (11)

JOIN в помощь
Это понятно, что JOIN нужно использовать. Но задача стоит при выборке данных из одной таблицы по двум столбцам `id_user` кто отправил, `to_user` кому.
Блин, ну что идей не будет?
Комментарий скрыт
Спасибо, видел =) да и уже решил вопрос.
Кройте тему, вопрос решен.
<?
$q = $pdo->query("SELECT u.login, u2.login AS to_user, c.msg FROM chat c LEFT JOIN user u ON c.id_user = u.id LEFT JOIN user u2 ON u2.id = c.to_user ORDER BY `time` DESC LIMIT 10");

while($post = $q->fetch(PDO::FETCH_ASSOC)){


echo $post['login'].'<br> '.$postq['to_user'].' '.$post['msg'].'</br>';

}
Зачем идти сюда с вопросами, вместо специальных сайтов?
А почему бы и сюда не написать?
Отвечают долго, и если вообще отвечают .

Кстати Интересно, зачем тебе native hp?
Показать комментарий
Скрыть комментарий
Назад 1 из 2 Вперёд
12
Для добавления комментариев необходимо авторизоваться
$help='Вопросы//Помощь';
Легенды Крови
Удивительный мир фантазий, сражений и тайн... Битв
Тема: Светлая | Тёмная
Версия: Mobile | Lite | Touch | Доступно в Google Play