Как вывести данный из двух таблиц одним циклом?

Гречина Олег Гречина Олег

Приведу пример, который вам точно объяснит что же я хочу:

Практически все сидят Вконтакте и все видели, как там устроены сообщения, а собственно страница, где показывает все входящие, ну или отправленные сообщения.
Я хочу, что бы на моем сайте выводило так же сообщения, но с учетом того, что я использую две таблицы в Базе Данных.
Есть таблица users и есть таблица mail, когда я вывожу циклом все входящие сообщения(из таблицы mail), то хотел бы видеть видеть аватарку пользователя рядом с каждым сообщением (и именно автора сообщения), но аватарка лежит в таблице users. И вот как достать ее с той таблицы (users) и прикрепить именно к тому сообщению, которой пришло от того пользователя?
Так же хотелось бы сделать и с именем пользователя, которое лежит в таблице users.
Таблица mail очень простая, там есть поля для id отправителя и получателя ну и поле с сообщением и датой отправки.
Ну так вот, у нас есть в таблице mail айди пользователя, который отправил сообщение и как с помощью этого id вывести рядом с сообщением аватарку, которая лежит в users (поле avatar) и не нарушить цикл…

grinka (Alexey Zelenin grinka (Alexey Zelenin

Базу данных какую используете? Интуитивно догадываюсь, что MySQL, но хотелось бы быть уверенным. Для mysql будет выглядеть наверное как-то так

select mail.id, mail… , users.avatar
from mail, users
where mail.id = users.id

linux_art linux_art

Почитайте про JOIN в SQL запросах

Гость Гость

Еще вариант - это сделать представление (VIEW) которое будет выдавать и сообщения, и аватарки пользователей.

Dr. von Ozgg Dr. von Ozgg

лучший ответ
Запрос такого вида
select mail.*, users.avatar from mail join users on (users.id = mail.user_id) where…
Короче говоря, объединение по идентификатору пользователя из таблицы mail и первичному ключу в users.

Добавить комментарий | Похожие обсуждения

Вопросы и ответы по Вконтакте
Вопросы и ответы

Популярные вопросы и ответы о социальной сети www.vkontakte.ru (vk.com)