Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Select из 3-х таблиц 
:(
    Опции темы
anykeyboy
Дата 20.10.2010, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 20.10.2010

Репутация: нет
Всего: нет



Добрый день.
В базе данных есть три таблицы.

1. Таблица 1
    Orders
    Поля
        ID          (int)
        Manager_ID  (int)
        Client_ID   (int)
        Order       (varchar)

2. Таблица 2
    Managers
    Поля
        ID    (int)
        Name  (varchar)

3. Таблица 3
    Clients
    Поля
        ID    (int)
        Name  (varchar)

Вопрос: как сделать запрос к БД, чтобы выбрать все записи из Таблицы 1 (Orders), и при этом
вместо Manager_ID подставлялось значение name.managers, а вместо Client_ID подставлялось значение
name.clients привязка идет по полю ID в соответствующих таблицах. Заранее спасибо.

Это сообщение отредактировал(а) anykeyboy - 20.10.2010, 14:02
PM MAIL   Вверх
anykeyboy
Дата 20.10.2010, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 20.10.2010

Репутация: нет
Всего: нет



Вроде бы получилось:
Код

SELECT
orders.*, managers.name as manager_name, clients.name as client_name
FROM
orders, managers, clients
WHERE
orders.manager_id = managers.id
AND
orders.client_id = clients.id;

Подскажите, пожалуйста. Насколько удачен такой запрос в плане скорости.

Это сообщение отредактировал(а) anykeyboy - 20.10.2010, 14:35
PM MAIL   Вверх
skyboy
Дата 20.10.2010, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



Цитата(anykeyboy @  20.10.2010,  13:31 Найти цитируемый пост)
Подскажите, пожалуйста. Насколько удачен такой запрос в плане скорости.

если *_id в таблицах - ключи, то все будет работать быстро.
а что, миллион записей и тормозит?
PM MAIL   Вверх
anykeyboy
Дата 20.10.2010, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 20.10.2010

Репутация: нет
Всего: нет



Цитата(skyboy @  20.10.2010,  14:39 Найти цитируемый пост)
если *_id в таблицах - ключи, то все будет работать быстро.

Код
id INT(11) NOT NULL AUTO_INCREMENT,
 Вот так созданы ID, они ключи?

Цитата(skyboy @  20.10.2010,  14:39 Найти цитируемый пост)
а что, миллион записей и тормозит?

Нет, записей не много. Порядка 10 000. Просто если есть более оптимальный способ, я бы хотел его узнать.

К сожалению знания по MySQL минимальны, вот поэтому такие и вопросы  smile 
PM MAIL   Вверх
skyboy
Дата 20.10.2010, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



ключи - это primary key(id). или index(кажется; возможно не "index", а "key") - для обычных, не первичных, индексов.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0659 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.