![]() |
|
Модераторы: LSD |
![]()
|
|
| manu |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 14.10.2004 Репутация: нет Всего: 3 |
1) Какая разница между JOIN и INNER JOIN? Который работает быстрее?
2) У меня в базе есть много таблиц такого вида X_HEADER ID int DATE int X_TABLE ID int HEADER_ID int PRODUCT_ID int PRICE int Очень часто (постоянно!) приходится делать запросы вида: SELECT SUM(X_TABLE.PRICE) AS X_SUM FROM X_HEADER JOIN X_TABLE ON X_HEADER.ID=X_TABLE.HEADER_ID WHERE X_TABLE.PRODUCT_ID=1 AND DATE<'2004.10.1' иногда такие: SELECT SUM(X_TABLE.PRICE) AS X_SUM FROM X_HEADER JOIN X_TABLE ON X_HEADER.ID=X_TABLE.HEADER_ID GROUP BY X_TABLE.PRODUCT_ID WHERE DATE<'2004.10.1' Вопрос: как можно их _максимально_ убыстрить? P.S. База данных MS SQL Server 2k |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
Отличаются направлением. Т.е. если в одной таблице нет записей, соответствующих внешнему ключу, они ведут себя по-разному...
Операция INNER JOIN (или просто JOIN) объединяет записи из двух таблиц, если связующие поля этих таблиц содержат одинаковые значения. Используйте операцию LEFT JOIN, чтобы создать левое внешнее объединение. С помощью левого внешнего объединения выбираются все записи первой (левой) таблицы, даже если они не соответствуют записям во второй (правой) таблице. Используйте операцию RIGHT JOIN, чтобы создать правое внешнее объединение. С помощью правого внешнего объединения выбираются все записи второй (правой) таблицы, даже если они не соответствуют записям в первой (левой) таблице. Крайний случай - OUTER JOIN. Объединяет записи таблиц, даже если в другой таблице (неважно какой, левой или правой) нет соответствующих записей. Добавлено @ 18:32 По скорости они не различаются (разве за счет объема передаваемых данных), а вот результаты будут давать РАЗНЫЕ!!! -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
|
|||
|
||||
![]()
|
| Правила форума "Общие вопросы по базам данных" | |
|
|
Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:
Данный форум не предназначен для:
Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение.
Полезные советы: Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | СУБД, общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |