<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Форум PHP-MyAdmin.RU &mdash; Вывод имени пользователя по его ID]]></title>
		<link>https://forum.php-myadmin.ru/viewtopic.php?id=2449</link>
		<atom:link href="https://forum.php-myadmin.ru/extern.php?action=feed&amp;tid=2449&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Вывод имени пользователя по его ID».]]></description>
		<lastBuildDate>Tue, 24 Jan 2012 15:12:40 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Вывод имени пользователя по его ID]]></title>
			<link>https://forum.php-myadmin.ru/viewtopic.php?pid=18672#p18672</link>
			<description><![CDATA[<p>Я уже запутался, но попробуйте добавить условие группировки.<br /></p><div class="codebox"><pre><code>GROUP BY f.follow_id, f.user_id</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Hanut)]]></author>
			<pubDate>Tue, 24 Jan 2012 15:12:40 +0000</pubDate>
			<guid>https://forum.php-myadmin.ru/viewtopic.php?pid=18672#p18672</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вывод имени пользователя по его ID]]></title>
			<link>https://forum.php-myadmin.ru/viewtopic.php?pid=18667#p18667</link>
			<description><![CDATA[<p>Я вот решил догнать запрос до победного и решил добавить вывод друзей моих друзей , но столкнулся с маленькой проблемой. </p><p>вот что у меня есть в базе сейчас</p><p><span class="postimg"><img src="http://s018.radikal.ru/i513/1201/ea/e3f08667dd7b.jpg" alt="http://s018.radikal.ru/i513/1201/ea/e3f08667dd7b.jpg" /></span></p><p>Я пользователь с ID 3 </p><p>у меня в друзьях : 7,6,8<br />а у моего друга 6 как и у меня друг 7</p><p>должно вывести их всех, а у меня массив где мой друг = 7 замещается на 6 = 7</p><div class="codebox"><pre><code>Array
(
    [0] =&gt; Array
        (
            [user_id] =&gt; 6
            [follow_id] =&gt; the_last.jpg
            [follow_username] =&gt; 7
            [follow_date] =&gt; 2012-01-24 16:27:35
            [follow_image] =&gt; second.jpg
        )

    [1] =&gt; Array
        (
            [user_id] =&gt; 3
            [follow_id] =&gt; ax46l7v7vugnesk10whk_339.jpg
            [follow_username] =&gt; 8
            [follow_date] =&gt; 2012-01-24 16:15:18
            [follow_image] =&gt; fsfsf
        )

    [2] =&gt; Array
        (
            [user_id] =&gt; 3
            [follow_id] =&gt; ax46l7v7vugnesk10whk_339.jpg
            [follow_username] =&gt; 6
            [follow_date] =&gt; 2012-01-24 16:09:22
            [follow_image] =&gt; the_last.jpg
        )

)</code></pre></div><p>как видно не хватает массива</p><div class="codebox"><pre><code>        (
            [user_id] =&gt; 3  &lt;&lt;&lt;&lt;---- мой id
            [follow_id] =&gt; the_last.jpg
            [follow_username] =&gt; 7 &lt;&lt;&lt;&lt; --- мой друг
            [follow_date] =&gt; 2012-01-24 16:27:35
            [follow_image] =&gt; second.jpg
        )</code></pre></div><p>Если мой друг дружит не смоими друзьями (к примуру с ID = 1) то запрос работает как нужно !<br />Проблема только если у нас друзья одинаковые, начинает происходить замена...</p><p>вот запрос :</p><div class="codebox"><pre><code>$sql = &quot;SELECT u2.id AS user_id, p.image as follow_id, u.id AS follow_username, f.date AS follow_date, i.image as follow_image
        FROM users AS u
        INNER JOIN (user_follow AS f, users AS u2) on (u.id = f.follow_id AND f.user_id = u2.id) 
        LEFT OUTER JOIN images i on i.id = (SELECT b.id FROM images AS b where f.follow_id = b.user_id ORDER BY b.id DESC LIMIT 1)
        LEFT OUTER JOIN images p on p.id = (SELECT b.id FROM images AS b where f.user_id = b.user_id ORDER BY b.id DESC LIMIT 1)
        WHERE f.user_id = 3 OR f.user_id IN (
                                            SELECT f2.follow_id
                                            FROM user_follow f2
                                            where f2.user_id = 3
                                            )
        GROUP BY f.follow_id
        ORDER BY f.date DESC&quot;;</code></pre></div><p>Буду крайне признателен за помощь&nbsp; <img src="https://forum.php-myadmin.ru/img/smilies/neutral.png" width="15" height="15" alt="neutral" /></p>]]></description>
			<author><![CDATA[null@example.com (kolxoznik1)]]></author>
			<pubDate>Tue, 24 Jan 2012 14:35:06 +0000</pubDate>
			<guid>https://forum.php-myadmin.ru/viewtopic.php?pid=18667#p18667</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вывод имени пользователя по его ID]]></title>
			<link>https://forum.php-myadmin.ru/viewtopic.php?pid=18660#p18660</link>
			<description><![CDATA[<div class="quotebox"><cite>kolxoznik1 сказал:</cite><blockquote><p>Интересно а есть вариант более проще без такого сильного заморачивания ?</p></blockquote></div><p>Запросом думаю нет. В некоторых случаях два запроса в скрипте сделать проще и эффективнее, чем пытаться сводить все в одном.</p>]]></description>
			<author><![CDATA[null@example.com (Hanut)]]></author>
			<pubDate>Tue, 24 Jan 2012 09:31:06 +0000</pubDate>
			<guid>https://forum.php-myadmin.ru/viewtopic.php?pid=18660#p18660</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вывод имени пользователя по его ID]]></title>
			<link>https://forum.php-myadmin.ru/viewtopic.php?pid=18656#p18656</link>
			<description><![CDATA[<p>Ночью интересные вещи можно сделать&nbsp; <img src="https://forum.php-myadmin.ru/img/smilies/smile.png" width="15" height="15" alt="smile" />&nbsp; вот собственно сделал ORDER BY id DESC в LEFT OUTER JOIN</p><div class="codebox"><pre><code>LEFT OUTER JOIN images i on i.id 
= (SELECT b.id FROM images AS b where f.follow_id = b.user_id ORDER BY b.id DESC LIMIT 1)</code></pre></div><p>выводит последнее изображение пользователя. </p><p>Интересно а есть вариант более проще без такого сильного заморачивания ?</p>]]></description>
			<author><![CDATA[null@example.com (kolxoznik1)]]></author>
			<pubDate>Tue, 24 Jan 2012 01:31:06 +0000</pubDate>
			<guid>https://forum.php-myadmin.ru/viewtopic.php?pid=18656#p18656</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вывод имени пользователя по его ID]]></title>
			<link>https://forum.php-myadmin.ru/viewtopic.php?pid=18655#p18655</link>
			<description><![CDATA[<p>Запрос работает сейчас хорошо, за исключение не выводит последнию фотографию пользователя, а берет 1 ввхождение.</p><p>вот что у меня в бд сейчас сидит :</p><p>id =&gt; 5, user_id =&gt; 3, image =&gt; 1_test.jpg<br />id =&gt; 6, user_id =&gt; 3, image =&gt; 2_test.jpg</p><p>Сейчас выводится id=&gt;5 . Подскажите существует ли возможность сделать </p><div class="codebox"><pre><code>ORDER BY id DESC</code></pre></div><p> в </p><div class="codebox"><pre><code>LEFT OUTER JOIN images i on f.follow_id = i.user_id</code></pre></div><p>раз выводит первую фото вхождения user_id поменять ему порядок что бы на 1 позиции стал последний (наибольший) ид с нужной последней фотографией</p>]]></description>
			<author><![CDATA[null@example.com (kolxoznik1)]]></author>
			<pubDate>Tue, 24 Jan 2012 00:35:32 +0000</pubDate>
			<guid>https://forum.php-myadmin.ru/viewtopic.php?pid=18655#p18655</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вывод имени пользователя по его ID]]></title>
			<link>https://forum.php-myadmin.ru/viewtopic.php?pid=18652#p18652</link>
			<description><![CDATA[<p>Попробуйте так:<br /></p><div class="codebox"><pre><code>$sql = &quot;SELECT `u`.`username` AS `username1`, `u2`.`username` AS `username2`, i.image, i.date, i.id
FROM `users` AS `u`
      INNER JOIN (`user_follow` AS `f`, `users` AS `u2`) on (`u`.`id` = `f`.`follow_id` AND `f`.`user_id` = `u2`.`id`)
      LEFT OUTER JOIN images i on f.follow_id = i.user_id
      WHERE
      `f`.`user_id` = 3
GROUP BY `f`.`follow_id`&quot;;</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Hanut)]]></author>
			<pubDate>Mon, 23 Jan 2012 20:47:50 +0000</pubDate>
			<guid>https://forum.php-myadmin.ru/viewtopic.php?pid=18652#p18652</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вывод имени пользователя по его ID]]></title>
			<link>https://forum.php-myadmin.ru/viewtopic.php?pid=18650#p18650</link>
			<description><![CDATA[<p>Спасибо ! Я решил продолжить модификацию данного запроса и вывести как раннее говорил, своих друзей с фотографией (последней) или пустой массив скажем [&#039;image&#039;] =&gt;</p><p>Я добавил в ваш запрос </p><p>(добваление картинки если существует, в противном случае null)</p><div class="codebox"><pre><code>LEFT OUTER JOIN images i on f.follow_id = i.user_id</code></pre></div><br /><br /><p>полный вид запроса:<br /></p><div class="codebox"><pre><code>$sql = &quot;SELECT `u`.`username` AS `username1`, `u2`.`username` AS `username2`, i.image, i.date, i.id
FROM `users` AS `u`
      INNER JOIN (`user_follow` AS `f`, `users` AS `u2`) on (`u`.`id` = `f`.`follow_id` AND `f`.`user_id` = `u2`.`id`)
      LEFT OUTER JOIN images i on f.follow_id = i.user_id
      WHERE
      `f`.`user_id` = 3&quot;;</code></pre></div><p>и вот что мне выдает :<br /></p><div class="codebox"><pre><code>    [0] =&gt; Array
        (
            [username1] =&gt; 6666
            [username2] =&gt; 3333
            [image] =&gt; test_one_more.jpg
            [date] =&gt; 2012-01-23 21:15:27
            [id] =&gt; 11
        )

    [1] =&gt; Array
        (
            [username1] =&gt; 6666
            [username2] =&gt; 3333
            [image] =&gt; my.test2.jpg
            [date] =&gt; 2012-01-23 20:49:29
            [id] =&gt; 9
        )

    [2] =&gt; Array
        (
            [username1] =&gt; 6666
            [username2] =&gt; 3333
            [image] =&gt; test3.jpg
            [date] =&gt; 2012-01-23 20:50:28
            [id] =&gt; 10
        )</code></pre></div><p>Проблема в том что если пользователь имеет одну фото или не имеет вообще запрос работает <span class="bbu">идеально</span>, а если несколько то выводит все фото друга, дублируя его иям. Из данного примера видно что скрипт должен вывести только </p><div class="codebox"><pre><code>    [0] =&gt; Array
        (
            [username1] =&gt; 6666
            [username2] =&gt; 3333
            [image] =&gt; test_one_more.jpg
            [date] =&gt; 2012-01-23 21:15:27
            [id] =&gt; 11
        )</code></pre></div><p>так как изображение было самое последнее у этого пользователя (видно по id и дате (время добавления))</p><p>Я считаю проблема здесь f.follow_id = i.user_id вывод всех где имя пользователя повторяется, имея 2 фото, у обоих будет одинаковый идентификатор пользователя (user_id) и соответственно выведет 2, вот как сделать что бы 1 ? есть вариант сгрупировать , но что то не выходит, может не так куда то что то пишу ?</p>]]></description>
			<author><![CDATA[null@example.com (kolxoznik1)]]></author>
			<pubDate>Mon, 23 Jan 2012 20:24:47 +0000</pubDate>
			<guid>https://forum.php-myadmin.ru/viewtopic.php?pid=18650#p18650</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вывод имени пользователя по его ID]]></title>
			<link>https://forum.php-myadmin.ru/viewtopic.php?pid=18646#p18646</link>
			<description><![CDATA[<p>Попробуйте так.<br /></p><div class="codebox"><pre><code>$sql = &quot;SELECT `u`.`username` AS `username1`, `u2`.`username` AS `username2`
FROM `users` AS `u`
      INNER JOIN (`user_follow` AS `f`, `users` AS `u2`) on (`u`.`id` = `f`.`follow_id` AND `f`.`user_id` = `u2`.`id`)
      WHERE
      `f`.`user_id` = 3&quot;;</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Hanut)]]></author>
			<pubDate>Mon, 23 Jan 2012 18:01:03 +0000</pubDate>
			<guid>https://forum.php-myadmin.ru/viewtopic.php?pid=18646#p18646</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вывод имени пользователя по его ID]]></title>
			<link>https://forum.php-myadmin.ru/viewtopic.php?pid=18644#p18644</link>
			<description><![CDATA[<p>[РЕШЕНИЕ]</p><p>Вроде решил проблему, </p><div class="codebox"><pre><code>$sql = &quot;SELECT fn.username as username1, u.username as username2
FROM
  users u
  INNER JOIN user_follow f on (u.id = f.follow_id)
  JOIN users AS fn ON (f.user_id=fn.id)
WHERE
  f.user_id = 3&quot;;</code></pre></div><p>вот такой получился запрос и выводит что и нужно </p><div class="codebox"><pre><code>   [0] =&gt; Array
        (
            [username1] =&gt; 3333
            [username2] =&gt; 6666
        )</code></pre></div><p>Подскажите может можно как то оптимизировать запрос ?</p>]]></description>
			<author><![CDATA[null@example.com (kolxoznik1)]]></author>
			<pubDate>Mon, 23 Jan 2012 17:39:40 +0000</pubDate>
			<guid>https://forum.php-myadmin.ru/viewtopic.php?pid=18644#p18644</guid>
		</item>
		<item>
			<title><![CDATA[Вывод имени пользователя по его ID]]></title>
			<link>https://forum.php-myadmin.ru/viewtopic.php?pid=18643#p18643</link>
			<description><![CDATA[<p>Здравствуйте !</p><p>Я имею следующие таблицы</p><p><strong>users</strong><br />id<br />username</p><p><strong>images</strong><br />id<br />user_id<br />image</p><p><strong>user_follow</strong><br />id<br />user_id<br />follow_id</p><p>у меня есть запрос который выводит моих друзей и друзей моих друзей, в роли главной таблицы беру &quot;user_follow&quot; и далее нужно подставить вмето<br />user_id -&gt; username1 пользователя из таблицы Users<br />follow_id -&gt; username2 пользователя из таблицы Users</p><p>На данный момент я имею такой запрос</p><div class="codebox"><pre><code>$sql = &quot;SELECT user_id, follow_id, username FROM users u
      INNER JOIN user_follow f on (u.id = f.follow_id)
      WHERE
      f.user_id = 3&quot;;</code></pre></div><p>и он выводит следующее :</p><div class="codebox"><pre><code>    [0] =&gt; Array
        (
            [user_id] =&gt; 3
            [follow_id] =&gt; 6
            [username] =&gt; 6666
        )</code></pre></div><p>Подскажите что и куда внести (изменения в запрос) что бы вывести<br />[user_id] как [username1] =&gt; &#039;username из таблицы users&#039;<br />[follow_id] как [username2] =&gt; &#039;username из таблицы users&#039; (сейчас выводится как [username] =&gt; &#039; &#039;)</p><p>Я потратил много времени в поиске в интернете и думая сам, решил как последнию надежду поискать на форму про базы данные</p>]]></description>
			<author><![CDATA[null@example.com (kolxoznik1)]]></author>
			<pubDate>Mon, 23 Jan 2012 17:12:32 +0000</pubDate>
			<guid>https://forum.php-myadmin.ru/viewtopic.php?pid=18643#p18643</guid>
		</item>
	</channel>
</rss>
