Отправка сообщения






Добро пожаловать!

Как выбрать данные из нескольких таблиц?

Как показывает практика для хранения некоторых данных в конкретных ситуациях удобно использовать несколько таблиц. После этого, выборка данных производиться путем одного запроса.

Для примера предположим, у нас есть три таблицы: users, city, photos. Таблица users предназначена для хранения данных учетной записи пользователя. В таблице city и photos находятся дополнительные данные о местоположении пользователя (city), а так же о его фотографиях (photos). Задача выбрать данные из трех таблиц посредством одного запроса.

sql-join-sheme

Для наглядности рассмотрим простенькую схему в виде рисунка. Итак, в таблице users есть два нужных для связки поля, id – уникальный ключ, city_id – id ключа в таблице city. В свою очередь в таблице photos так же есть поле user_id, которое должно содержать значение идентичное полю id конкретной записи в таблице users. Таблица city содержит поле id, на которое, как было сказано ссылается поле city_id в таблице users. Таким образом, опираясь на поля с уникальными ключами в таблице можно хранить данные, которыми в последующем удобно воспользоваться запросив их в связке. Полагаю, с этим разобрались.

Используя конструкцию из команд INNER JOIN формируем такой запрос:

SELECT u.*,c.*,p.*
FROM users u
  INNER JOIN city c
    ON u.city_id=c.id
  INNER JOIN photos p
    ON p.user_id=u.id
WHERE u.id=10

В результате выполнения запроса, получаем сгруппированные данные из таблиц. Данный запрос является одним из вариантов группировки таблиц. Разумеется, есть и другие способы, подробнее о которых рекомендуется читать в документации MySQL.

Добавил: htmaker, 22.07.2014 г.
 
плохослабосойдетхорошоотлично (Еще не оценили)
Загрузка...

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Форум на разные темы - digital-planet.info

Комментарии

  • Загрузка...

Наверх