Какая смазка лучше подходит для внутренних и наружных шрусов
Автовладельцы, предпочитающие самостоятельно заниматься обслуживанием собственного авто, неминуемо сталкиваются с проблемой выбора подходящей смазки для шарниров равных угловых скоростей (ШРУС) привода автомобиля. И усугубляет данную проблему регулярный рост ассортимента этого вида смазок в торговой сети.
Чтобы разобраться в том, какую смазку лучше закладывать в ШРУС, в первую очередь, придётся внимательно отнестись к самому ШРУСу, а точнее разобраться в его разновидностях, поскольку ШРУС ШРУСУ – рознь.
ШРУСы внутренние и ШРУСы внешние
Пи выборе смазки мы должны учесть, о каком ШРУСе идёт речь – внутреннем или внешнем. Оба они служат для передачи вращательного движения от агрегатов трансмиссии (КПП или редукторов) к колесам. Они обеспечивают постоянную скорость вращения приводных валов (полуосей) независимо от перемещений подвески и агрегатов трансмиссии, а также угла поворота колес.
По факту привод состоит из двух закреплённых на полуоси ШРУСов – внутреннего и внешнего, причём это разные по своей конструкции узлы. Внутренний – вставляется в агрегат трансмиссии, наружный – закреплён в ступице колеса. Важно учитывать, что смазки для внешнего и внутреннего ШРУС – два продукта с разными функциями, и к их выбору и применению следует подойти максимально ответственно.
Смазка для внешнего ШРУС
Для внешних ШРУС (ШРУС со стороны колеса) на шариковых подшипниках скольжения используют смазку с дисульфидом молибдена. В роли смазки для наружного ШРУСа часто выступает универсальная молибденовая автомобильная смазка с широким спектром применения. Например, в шлицевых соединениях карданных валов, втулочно-пальцевых, шкворневых и шарово-шарнирных сочленениях, а также опорно-сцепных устройствах грузовых автомобилей и спецтехники. Смазки для внешнего ШРУС обычно достаточно густые: их консистенция соответствует NLGI 2.
Для всех описанных выше узлов, включая внешний ШРУС (он же ШРУС со стороны колеса, наружный ШРУС) и карданный ШРУС Рцеппа (Rzeppa), можно смело использовать смазку с дисульфидом молибдена «РУСМА EP2М», превосходящую по физико-химическим показателям и эксплуатационным характеристикам ряд смазок аналогичного назначения отечественного и импортного производства.
Внешние шариковые ШРУСы передают большой крутящий момент, обеспечивают большой угол поворота и обладают минимальным люфтом между деталями узла. Конструкция прекрасно себя проявляет в качестве наружных шарниров приводов колёс. Главный её недостаток заключается в том, что она не допускает осевых перемещений.
Смазка для внутреннего ШРУС
Для компенсации осевых перемещений подвески и агрегатов трансмиссии применяются ШРУС другой конструкции – внутренние, типа «трипод». В корпусе ШРУСа типа «трипод» располагается так называемая трёхлучевая вилка с роликами на игольчатых подшипниках. Конструкция допускает как угловые перемещения, так и осевые. Для внутренних ШРУС типа «трипод» смазки с дисульфидом молибдена или графитом противопоказаны, производители техники рекомендуют закладывать в этот узел высокотемпературные смазки без твердосмазочных наполнителей, например, смазка «РУСМА M-Grease XHP».
Выбор смазки для ШРУС
Оговоримся сразу, на отечественном рынке можно найти более дешёвые автомобильные смазки. Однако не будем забывать о том, что при выборе смазки для ШРУС решающего значения цена иметь не должна, поскольку выбор следует делать в пользу качества продукции и репутации производителя, чтобы после не пришлось переплачивать за аварийный ремонт техники и терпеть убытки из-за простоя.
Смазки «РУСМА» для ШРУС
В сравнении с импортными смазками смазочные материалы «РУСМА» при одинаковых эксплуатационных характеристиках демократичнее по цене. Для предприятий с собственным автопарком импортозамещение за счёт использования смазок «РУСМА» может стать ещё одной статьёй для экономии.
Автомобильная смазка «РУСМА EP2М» отлично подходит для внешних ШРУС, поскольку разработана с учётом особенностей работы упомянутых выше шарниров – высоких удельных давлений в зоне контакта шариков и канавок, значительно ограничивающих эксплуатационный ресурс узла в целом. Смазка увеличивает срок службы наружного ШРУС, обеспечивая особую защиту деталей узла в условиях граничного трения и высоких контактных давлений. Полусинтетическая масляная основа смазки, загущённая комплексным литиевым мылом, с добавлением пакета противоизносных присадок EP (Extreme Pressure additives) и дисульфида молибдена позволяет ей сохранять работоспособность в широком температурном диапазоне и эффективно защищать рабочие детали наружного ШРУС от износа.
Для внутренних ШРУС типа «трипод» может быть рекомендована смазка «РУСМА M-Grease XHP», не имеющая в своём составе твердосмазочных наполнителей и обладающая уникальными высокотемпературными и смазывающими характеристиками.
Самая распространённая ошибка — использование в триподах смазок, предназначенных только для шариковых шарниров. Тем не менее, обслуживание ШРУС разной конструкции имеет много общего. В обоих случаях смазку следует заменять полностью. Шарнир разбирают, отработанную смазку удаляют. Для обеспечения надёжной работы узла шарнир заполняется свежим смазочным материалом и герметично закрывается резиновым или пластиковым пыльником.
Где купить смазку для ШРУС
Компания «РУСМА» предлагает приобрести высококачественные смазочные материалы для автомобилей и спецтехники. Покупая смазку у проверенного производителя с более чем 20-летним опытом работы в данном сегменте рынка, покупатель гарантированно получает продукт высокого качества. Это немаловажно, поскольку, к сожалению, рынок ГСМ наводнён контрафактом.
Для удобства заказчиков «РУСМА» осуществляет фасовку своей продукции в тару разного объёма: и предлагает смазку для ШРУСов разной конструкции в удобной фасовке – в тубах (в пластиковых картриджах) и в вёдрах.
По вопросам приобретения обращайтесь в Отдел продаж:
бесплатно для регионов: 8 (800) 234-58-83
в Санкт-Петербурге: (812) 676-58-83 (доп. 801)
ШРУС внутренний Masuma , TO-150. | Masuma
Рекомендованная розничная цена:
5559,00 ₽
Артикул: TO-150
Код: 72778
Показать применимость
Купить в интернет-магазине:
Купить в других интернет магазинах
Применимость
43403-60020
LEXUS
TOYOTA
GX470
Кузов/объем | Период установки | Конфигурация |
---|---|---|
UZJ120L | 2002.![]() | 4.7L Бензин 2UZFE EFI (271 л.с. / 199 кВт) Полный привод (4WD). Левый руль |
UZJ120L | 2002.11-2009.08 | 4.7L Бензин 2UZFE EFI (271 л.с. / 199 кВт) Полный привод (4WD). Левый руль |
4RUNNER
Кузов/объем | Конфигурация | |
---|---|---|
GRN215L | 2002.![]() | 4.0L Бензин 1GRFE EFI (245 л.с. / 180 кВт) Полный привод (4WD). Левый руль |
GRN215L | 2002.11-2009.08 | 4.0L Бензин 1GRFE EFI (245 л.с. / 180 кВт) Полный привод (4WD). Левый руль |
UZN215L | 2002.08-2009.08 | 4.7L Бензин 2UZFE EFI (235 л.с. / 173 кВт) Полный привод (4WD). Левый руль |
UZN215L | 2002.![]() | 4.7L Бензин 2UZFE EFI (235 л.с. / 173 кВт) Полный привод (4WD). Левый руль |
FJ CRUISER
Кузов/объем | Период установки | Конфигурация |
---|---|---|
GSJ15L | 2006.![]() | 4.0L Бензин 1GRFE EFI (258 л.с. / 190 кВт) Полный привод (4WD). Левый руль |
GSJ15L | 2006.01-2009.08 | 4.0L Бензин 1GRFE EFI (258 л.с. / 190 кВт) Полный привод (4WD). Левый руль |
HILUX SURF
Кузов/объем | Период установки | Конфигурация |
---|---|---|
GRN215W | 2005.![]() | 4.0L Бензин 1GRFE EFI (249 л.с. / 183 кВт) Полный привод (4WD). Правый руль |
GRN215W | 2005.08-2009.08 | 4.0L Бензин 1GRFE EFI (249 л.с. / 183 кВт) Полный привод (4WD). Правый руль |
KDN215W | 2002.11-2005.08 | 3.0L Дизель 1KDFTV (170 л.с. / 125 кВт) Полный привод (4WD). Правый руль |
KDN215W | 2002.![]() | |
RZN215W | 2002.11-2004.08 | 2.7L Бензин 3RZFE EFI (150 л.с. / 110 кВт) Полный привод (4WD). Правый руль |
RZN215W | 2002.11-2004.08 | 2.7L Бензин 3RZFE EFI (150 л.с. / 110 кВт) Полный привод (4WD). Правый руль |
TRN215W | 2004.![]() | 2.7L Бензин 2TRFE EFI (163 л.с. / 120 кВт) Полный привод (4WD). Правый руль |
TRN215W | 2004.08-2009.08 | 2.7L Бензин 2TRFE EFI (163 л.с. / 120 кВт) Полный привод (4WD). Правый руль |
VZN215W | 3.4L Бензин 5VZFE EFI (185 л.с. / 136 кВт) Полный привод (4WD). Правый руль | |
VZN215W | 2002.![]() | 3.4L Бензин 5VZFE EFI (185 л.с. / 136 кВт) Полный привод (4WD). Правый руль |
LAND CRUISER PRADO
Кузов/объем | Период установки | Конфигурация |
---|---|---|
GRJ120W | 2005.![]() | 4.0L Бензин 1GRFE EFI (249 л.с. / 183 кВт) Полный привод (4WD). Правый руль |
GRJ120W | 2005.08-2009.08 | 4.0L Бензин 1GRFE EFI (249 л.с. / 183 кВт) Полный привод (4WD). Правый руль |
GRJ121W | 2005.08-2009.08 | 4.0L Бензин 1GRFE EFI (249 л.с. / 183 кВт) Полный привод (4WD). Правый руль |
GRJ121W | 2005.![]() | 4.0L Бензин 1GRFE EFI (249 л.с. / 183 кВт) Полный привод (4WD). Правый руль |
KDJ120W | 2002.11-2007.07 | 3.0L Дизель 1KDFTV (170 л.с. / 125 кВт) Полный привод (4WD). Правый руль |
KDJ120W | 2002.11-2007.07 | 3.0L Дизель 1KDFTV (170 л.с. / 125 кВт) Полный привод (4WD). Правый руль |
KDJ121W | 2002.![]() | 3.0L Дизель 1KDFTV (170 л.с. / 125 кВт) Полный привод (4WD). Правый руль |
KDJ121W | 2002.11-2005.08 | 3.0L Дизель 1KDFTV (170 л.с. / 125 кВт) Полный привод (4WD). Правый руль |
KDJ125W | 2002.11-2005.08 | 3.0L Дизель 1KDFTV (170 л.с. / 125 кВт) Полный привод (4WD). Правый руль |
KDJ125W | 2002.![]() | 3.0L Дизель 1KDFTV (170 л.с. / 125 кВт) Полный привод (4WD). Правый руль |
RZJ120W | 2002.09-2004.08 | 2.7L Бензин 3RZFE EFI (150 л.с. / 110 кВт) Полный привод (4WD). Правый руль |
RZJ120W | 2002.09-2004.08 | 2.7L Бензин 3RZFE EFI (150 л.с. / 110 кВт) Полный привод (4WD). Правый руль |
RZJ125W | 2002.![]() | 2.7L Бензин 3RZFE EFI (150 л.с. / 110 кВт) Полный привод (4WD). Правый руль |
RZJ125W | 2002.09-2004.08 | 2.7L Бензин 3RZFE EFI (150 л.с. / 110 кВт) Полный привод (4WD). Правый руль |
TRJ120W | 2004.08-2009.08 | 2.7L Бензин 2TRFE EFI (163 л.с. / 120 кВт) Полный привод (4WD). Правый руль |
TRJ120W | 2004.![]() | 2.7L Бензин 2TRFE EFI (163 л.с. / 120 кВт) Полный привод (4WD). Правый руль |
TRJ125W | 2004.08-2009.08 | 2.7L Бензин 2TRFE EFI (163 л.с. / 120 кВт) Полный привод (4WD). Правый руль |
TRJ125W | 2004.08-2009.08 | 2.7L Бензин 2TRFE EFI (163 л.с. / 120 кВт) Полный привод (4WD). Правый руль |
VZJ120W | 2002.![]() | 3.4L Бензин 5VZFE EFI (185 л.с. / 136 кВт) Полный привод (4WD). Правый руль |
VZJ120W | 2002.09-2005.08 | 3.4L Бензин 5VZFE EFI (185 л.с. / 136 кВт) Полный привод (4WD). Правый руль |
VZJ121W | 2002.09-2005.08 | 3.4L Бензин 5VZFE EFI (185 л.с. / 136 кВт) Полный привод (4WD). Правый руль |
VZJ121W | 2002.![]() | 3.4L Бензин 5VZFE EFI (185 л.с. / 136 кВт) Полный привод (4WD). Правый руль |
VZJ125W | 2002.09-2005.08 | 3.4L Бензин 5VZFE EFI (185 л.с. / 136 кВт) Полный привод (4WD). Правый руль |
VZJ125W | 2002.09-2005.08 | 3.4L Бензин 5VZFE EFI (185 л.с. / 136 кВт) Полный привод (4WD). Правый руль |
LAND CRUISER PRADO
Кузов/объем | Период установки | Конфигурация |
---|---|---|
GRJ120L | 2003.![]() | 4.0L Бензин 1GRFE EFI (276 л.с. / 203 кВт) Полный привод (4WD). Левый руль |
GRJ120L | 2003.01-2009.08 | 4.0L Бензин 1GRFE EFI (276 л.с. / 203 кВт) Полный привод (4WD). Левый руль |
GRJ125L | 2003.01-2009.08 | 4.0L Бензин 1GRFE EFI (249 л.с. / 183 кВт) Полный привод (4WD). Левый руль |
GRJ125L | 2003.![]() | 4.0L Бензин 1GRFE EFI (249 л.с. / 183 кВт) Полный привод (4WD). Левый руль |
KDJ120L | 2002.09-2009.08 | 3.0L Дизель 1KDFTV (173 л.с. / 127 кВт) Полный привод (4WD). Левый руль |
KDJ120L | 2002.09-2009.08 | 3.0L Дизель 1KDFTV (173 л.с. / 127 кВт) Полный привод (4WD). Левый руль |
KDJ125L | 2002.![]() | 3.0L Дизель 1KDFTV (173 л.с. / 127 кВт) Полный привод (4WD). Левый руль |
KDJ125L | 2002.09-2009.08 | 3.0L Дизель 1KDFTV (173 л.с. / 127 кВт) Полный привод (4WD). Левый руль |
Купить в интернет-магазине
SQL INNER JOIN (с примерами)
В этом руководстве мы узнаем о SQL INNER JOIN с помощью примеров.
SQL INNER JOIN
объединяет две таблицы на основе общего столбца и выбирает записи с совпадающими значениями в этих столбцах.
Пример
ВЫБЕРИТЕ Customers.customer_id, Customers.first_name, Orders.amount ОТ клиентов ВНУТРЕННЕЕ СОЕДИНЕНИЕ Заказы ON Customers.customer_id = Orders.customer;
Вот как работает этот код:
Пример: SQL INNER JOINЗдесь команда SQL выбирает столбцы customer_id и first_name (из таблицы Customers ) и столбец amount (из таблицы Orders ).
И набор результатов будет содержать те строки, в которых есть совпадение между customer_id (из таблицы Customers ) и customer (из таблицы Orders ).
Синтаксис ВНУТРЕННЕГО СОЕДИНЕНИЯ
Синтаксис INNER JOIN
:
SELECT столбцы ИЗ таблицы1 ВНУТРЕННЕЕ СОЕДИНЕНИЕ таблица2 ON table1.column_name = table2.column_name;
INNER JOIN с предложением WHERE
Вот пример INNER JOIN
с предложением WHERE:
SELECT Customers.customer_id, Customers.first_name, Orders.amount ОТ клиентов ВНУТРЕННЕЕ СОЕДИНЕНИЕ Заказы ON Customers.customer_id = Orders.customer ГДЕ Orders.amount >= 500;
Здесь команда SQL объединяет две таблицы и выбирает строки, в которых Сумма на больше или равна 500 .
SQL INNER JOIN с псевдонимом AS
Мы можем использовать псевдонимы AS внутри INNER JOIN
, чтобы сделать наш фрагмент коротким и чистым. Например,
SELECT C.cat_name, P.prod_title ИЗ Категории КАК С ВНУТРЕННЕЕ СОЕДИНЕНИЕ Продукты AS P ON C.cat_id= P.cat_id;
Здесь команда SQL выбирает общие строки между таблицей Категория и Продукты .
ВНУТРЕННЕЕ СОЕДИНЕНИЕ SQL с тремя таблицами
Мы также можем объединить более двух таблиц, используя INNER JOIN
. Например,
ВЫБРАТЬ C.customer_id, C.first_name, O.amount, S.status ОТ клиентов AS C ВНУТРЕННЕЕ СОЕДИНЕНИЕ Заказы AS O ВКЛ C.customer_id = O.клиент ВНУТРЕННЕЕ СОЕДИНЕНИЕ Доставка AS S ON C.customer_id = S.customer;
Здесь команда SQL
- объединяет таблицы Customers и Orders на основе customer_id
- и присоединяется к Клиентам и Таблица состояния на основе customer_id
Команда возвращает те строки, в которых есть совпадение между значениями столбцов в обоих условиях соединения.
Примечание: Для запуска этой команды в каждой отдельной таблице должен быть столбец customer_id .
Внутреннее соединение и другие соединения
Мы также можем использовать JOIN
вместо INNER JOIN
. По сути, эти два пункта одинаковы.
Значит,
ВЫБЕРИТЕ Customers.customer_id, Customers.first_name, Orders.amount ОТ клиентов ВНУТРЕННЕЕ СОЕДИНЕНИЕ Заказы ON Customers.customer_id = Orders.customer;
аналогично
ВЫБЕРИТЕ Customers.customer_id, Customers.first_name, Orders.amount ОТ клиентов ПРИСОЕДИНЯЙТЕСЬ к заказам ON Customers.customer_id = Orders.customer;
INNER JOIN
выбирает общие строки между двумя таблицами. Принимая во внимание, что LEFT JOIN
выбирает общие строки, а также все остальные строки из левой таблицы.
Давайте рассмотрим пример,
INNER JOIN
SELECT Customers.customer_id, Customers.first_name, Orders.amount ОТ клиентов ВНУТРЕННЕЕ СОЕДИНЕНИЕ Заказы ON Customers.customer_id = Orders.customer;
Вывод
Пример: SQL INNER JOIN ВыводLEFT JOIN
SELECT Customers.customer_id, Customers.first_name, Orders.amount ОТ клиентов ЛЕВОЕ СОЕДИНЕНИЕ Заказы ON Customers.customer_id = Orders.customer;
Вывод
Пример: SQL LEFT JOIN Вывод INNER JOIN
выбирает общие строки между двумя таблицами. Принимая во внимание, что
RIGHT JOIN
выбирает общие строки, а также все остальные строки из правой таблицы.
Давайте рассмотрим пример,
INNER JOIN
SELECT Customers.customer_id, Customers.first_name, Orders.amount ОТ клиентов ВНУТРЕННЕЕ СОЕДИНЕНИЕ Заказы ON Customers.customer_id = Orders.customer;
Вывод
Пример: SQL INNER JOIN ВыводПРАВОЕ СОЕДИНЕНИЕ
SELECT Customers.customer_id, Customers.first_name, Orders.amount ОТ клиентов ПРАВОЕ СОЕДИНЕНИЕ Заказы ON Customers.customer_id = Orders.customer_id;
Вывод
Пример: SQL RIGHT JOIN Вывод INNER JOIN
выбирает общие строки между двумя таблицами. В то время как FULL OUTER JOIN
выбирает все строки из обеих таблиц.
Давайте посмотрим на пример,
ВНУТРЕННЕЕ СОЕДИНЕНИЕ
ВЫБЕРИТЕ Customers.customer_id, Customers.first_name, Orders.amount ОТ клиентов ВНУТРЕННЕЕ СОЕДИНЕНИЕ Заказы ON Customers.customer_id = Orders.customer;
Вывод
Пример: SQL INNER JOIN ВыводПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ
SELECT Customers.customer_id, Customers.first_name, Orders.amount ОТ клиентов ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ Заказы ON Customers.customer_id = Orders.customer;
Вывод
Пример: SQL FULL OUTER JOIN ВыводРекомендуемые показания
- SQL JOIN
- SQL ЛЕВОЕ СОЕДИНЕНИЕ
- SQL ПРАВОЕ СОЕДИНЕНИЕ
- SQL ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ
Содержание
Пошаговое руководство по SQL Inner Join
Каждую минуту организации генерируют и анализируют непревзойденные объемы данных. В этой статье мы покажем, как мы можем использовать SQL Inner Join для запроса и доступа к данным из нескольких таблиц, которые хранят эти постоянно растущие данные в базах данных SQL.
Соединения SQL
Прежде чем мы начнем с SQL Inner Join, я хотел бы вызвать здесь SQL Join. Присоединение — это широко используемое предложение в SQL Server, в основном для объединения и извлечения данных из двух или более таблиц. В реальной реляционной базе данных данные структурированы в большом количестве таблиц, и поэтому существует постоянная потребность в объединении этих нескольких таблиц на основе логических связей между ними. В SQL Server существует четыре основных типа соединений: внутреннее, внешнее (левое, правое, полное), самостоятельное и перекрестное соединение. Чтобы получить краткий обзор всех этих объединений, я бы порекомендовал пройти по этой ссылке, обзору типов соединений SQL и учебному пособию.
Эта статья посвящена внутреннему соединению в SQL Server, так что давайте перейдем к нему.
Определение внутреннего соединения SQL
Предложение Inner Join в SQL Server создает новую таблицу (не физическую) путем объединения строк, имеющих совпадающие значения в двух или более таблицах. Это объединение основано на логической связи (или общем поле) между таблицами и используется для извлечения данных, которые появляются в обеих таблицах.
Предположим, у нас есть две таблицы, таблица A и таблица B, которые мы хотели бы соединить с помощью SQL Inner Join. Результатом этого соединения будет новый результирующий набор, возвращающий совпадающие строки в обеих этих таблицах. Часть пересечения, выделенная черным цветом ниже, показывает данные, полученные с помощью Inner Join в SQL Server.
Синтаксис внутреннего соединения SQL Server
Ниже приведен основной синтаксис Inner Join.
SELECT Column_list
FROM TABLE1
INNER JOIN TABLE2
ON Table1.ColName = Table2.ColName
Синтаксис внутреннего соединения в основном сравнивает строки таблицы Table1 с таблицей Table2, чтобы проверить, совпадает ли что-либо на основе условия, указанного в предложении ON. Когда условие соединения выполнено, оно возвращает совпадающие строки в обеих таблицах с выбранными столбцами в предложении SELECT.
Предложение SQL Inner Join такое же, как и предложение Join, и работает так же, если мы не указываем тип (INNER) при использовании предложения Join. Короче говоря, внутреннее соединение — это ключевое слово по умолчанию для соединения, и оба они могут использоваться взаимозаменяемо.
Примечание. Мы будем использовать ключевое слово «внутреннее» соединение в этой статье для большей ясности. Вы можете опустить его при написании своих запросов и также можете использовать только «Присоединиться».
Внутреннее соединение SQL в действии
Давайте попробуем понять концепцию внутреннего соединения на примере интересной выборки данных, касающейся пиццерии и ее распределения продуктов питания. Сначала я собираюсь создать две таблицы: таблицу «PizzaCompany», которая управляет различными филиалами пиццерий в нескольких городах, и таблицу «Foods», в которой хранятся сведения о распределении продуктов питания по этим компаниям. Вы можете выполнить приведенный ниже код, чтобы создать и заполнить данные в этих двух таблицах. Все эти данные являются гипотетическими и вы можете создать их в любой из ваших существующих баз данных.
1 2 3 4 5 6 7 8 10 110003 12 13 14 9000 3 9000 3 9000 3 9000 3 9000 3 9000 3 9000 3 9000 3 9000 3 9000 3 9000 3 9000 3 9000 3 | CREATE TABLE [dbo].[PizzaCompany] ( [CompanyId] [int] IDENTITY(1,1) PRIMARY KEY CLUSTERED, [CompanyName] [CompanyName](50) , 3 90 varchar](30) ) SET IDENTITY_INSERT [dbo].[PizzaCompany] ON; ВСТАВИТЬ В [dbo].[PizzaCompany] ([CompanyId], [CompanyName], [CompanyCity]) VALUES(1,’Dominos’,’Los Angeles’) ; ВСТАВИТЬ В [dbo]. ВСТАВИТЬ В [dbo].[PizzaCompany] ([CompanyId], [CompanyName], [CompanyCity]) VALUES(3,’Папа Джонс’,’Сан-Диего’) ; ВСТАВИТЬ В [dbo].[PizzaCompany] ([CompanyId], [CompanyName], [CompanyCity]) VALUES(4,’Ah Pizz’,’Fremont’) ; ВСТАВИТЬ В [dbo].[PizzaCompany] ([CompanyId], [CompanyName], [CompanyCity]) VALUES(5,’Nino Pizza’,’Las Vegas’) ; ВСТАВИТЬ В [dbo].[PizzaCompany] ([CompanyId], [CompanyName], [CompanyCity]) VALUES(6,’Пиццерия’,’Бостон’) ; ВСТАВИТЬ В [dbo].[PizzaCompany] ([CompanyId], [CompanyName], [CompanyCity]) VALUES(7,’chuck e cheese’,’Chicago’) ;
ВЫБЕРИТЕ * ОТ PizzaCompany: |
Вот как выглядят данные в таблице PizzaCompany:
Давайте сейчас создадим и заполним таблицу Foods. CompanyID в этой таблице — это внешний ключ, который ссылается на первичный ключ таблицы PizzaCompany, созданной выше.
1 2 3 4 5 6 7 8 10 110003 12 13 14 9000 3 9000 3 9000 3 9000 3 9000 3 9000 3 9000 3 9000 3 9000 3 9000 3 9000 3 9000 3 9000 3 9000 3 9000 3 9000 3 9000 3 9000 3 9000 3 9000 3 9000 3 9000 3 9000 30002 1718 | Создание таблицы [dbo]. [Foods] ( [itemid] int Первичные ключевые кластеры, [itemname] varchar (50), (CompanyID) ССЫЛКИ PizzaCompany(CompanyID) ) ВСТАВИТЬ В [dbo].[Foods] ([ItemId], [ItemName], [UnitsSold], [CompanyId]) VALUES(1,’Большая пицца’,5, 2) ВСТАВИТЬ В [dbo].[Foods] ([ItemId], [ItemName], [UnitsSold], [CompanyId]) VALUES(2,’чесночные узлы’,6,3) ВСТАВИТЬ В [dbo].[Foods] ([ItemId], [ItemName], [UnitsSold], [CompanyId]) VALUES(3,’Большая пицца’,3,3) ВСТАВИТЬ В [dbo].[ Foods] ([ItemId], [ItemName], [UnitsSold], [CompanyId]) VALUES(4,’Средняя пицца’,8,4) ВСТАВИТЬ В [dbo]. ВСТАВИТЬ В [dbo].[Foods] ([ItemId], [ItemName], [UnitsSold], [CompanyId]) VALUES(6,’Средняя пицца’,11,1) ВСТАВИТЬ В [dbo].[Foods] ([ItemId], [ItemName], [UnitsSold], [CompanyId]) VALUES(7,’Маленькая пицца’, 9,6) ВСТАВИТЬ В [dbo].[Foods] ([ItemId], [ItemName], [UnitsSold], [CompanyId]) VALUES(8,’Small Pizza’,6,7)
SELECT * ОТ Пищевых продуктов |
В следующей таблице показаны данные из таблицы «Продукты». В этой таблице хранится такая информация, как количество проданных единиц продуктов питания, а также пиццерия (CompanyId), которая ее доставляет.
Теперь, если мы хотим увидеть товары, а также единицы, проданные каждой компанией по производству пиццы, мы можем объединить эти две таблицы с помощью предложения внутреннего соединения, используемого в поле CompanyId (в нашем случае это разделяет отношение внешнего ключа ).
SELECT pz.CompanyCity, pz.CompanyName, pz.CompanyId AS PizzaCompanyId, f.CompanyID AS FoodsCompanyId, f.ItemName, f.UnitsSold ИЗ PizzaCompany pz INNER JOIN Foods f pz. Идентификатор компании |
Ниже приведен набор результатов приведенного выше запроса внутреннего соединения SQL. Для каждой строки в таблице PizzaCompany функция Inner Join сравнивает и находит совпадающие строки в таблице Foods и возвращает все совпадающие строки, как показано ниже. И если вы заметили, CompanyId = 5 исключается из результата запроса, так как не соответствует таблице Foods.
С помощью приведенного выше набора результатов мы можем разобрать товары, а также количество товаров, доставленных пиццериями в разных городах. Например, компания Dominos доставила в Лос-Анджелес 7 хлебных палочек и 11 средних пицц.
Внутреннее соединение SQL для трех таблиц
Давайте подробнее изучим это объединение и предположим, что в штате откроются три аквапарка (похоже на лето), и эти аквапарки закажут еду из пиццерий, упомянутых в таблице PizzaCompany.
Я собираюсь быстро создать таблицу WaterPark и загрузить в нее произвольные данные, как показано ниже.
1 2 3 4 5 6 7 8 10 110003 12 13 14 | CREATE TABLE [dbo].[WaterPark] ( [WaterParkLocation] VARCHAR(50), [CompanyId] int, FOREIGN KEY(CompanyID) REFERENCES PizzaCompany(CompanyID) ) ВСТАВИТЬ В [dbo].[WaterPark] ([WaterParkLocation], [CompanyId]) VALUES(‘Street 14 ) ВСТАВИТЬ В [dbo].[WaterPark] ([WaterParkLocation], [CompanyId]) VALUES(‘Boulevard 2’,2) ВСТАВИТЬ В [dbo].[WaterPark] ([WaterParkLocation], [CompanyId]) VALUES(‘Rogers 54’,4) INSERT INTO [dbo].[WaterPark] ([WaterParkLocation], [CompanyId]) VALUES(‘Street 14’,3) ВСТАВИТЬ В [dbo].[WaterPark] ([WaterParkLocation], [CompanyId]) VALUES(‘Rogers 54’,5) ВСТАВИТЬ В [dbo].
ВЫБЕРИТЕ * ИЗ Аквапарка |
И ниже вывод этой таблицы.
Как говорится, картинка стоит тысячи слов. Давайте быстро посмотрим на схему базы данных этих трех таблиц с их отношениями, чтобы лучше понять их.
Теперь мы собираемся включить эту третью таблицу в предложение SQL Inner Join, чтобы посмотреть, как это повлияет на набор результатов. Согласно данным в таблице WaterPark, три аквапарка передавали еду от всех пиццерий, кроме Pizzeria (Id = 6) и chuck e cheese (Id = 7). Выполните приведенный ниже код, чтобы увидеть всю раздачу еды в аквапарках по точкам Pizza.
1 2 3 4 5 6 | ВЫБЕРИТЕ pz.CompanyId, pz.CompanyCity, pz.CompanyName,f.ItemName, f.UnitsSold, w.WaterParkLocation ИЗ PizzaCompany pz ВНУТРЕННЕЕ ОБЪЕДИНЕНИЕ Foods f ON pz. ЗАКАЗ ПО pz.CompanyId |
На основе CompanyId SQL Inner Join сопоставляет строки в обеих таблицах, PizzaCompany (таблица 1) и Foods (таблица 2), а затем ищет совпадение в WaterPark (таблица 3), чтобы вернуть строки. Как показано ниже, с добавлением внутреннего соединения в WaterPark CompanyId (6,7 (кроме 5)) также исключается из окончательного набора результатов, поскольку условие w.CompanyId = pz.CompanyId не выполняется для идентификаторов (6, 7). Вот как внутреннее соединение SQL помогает возвращать определенные строки данных из нескольких таблиц.
Давайте углубимся в SQL Inner Join еще с несколькими предложениями T-SQL.
Использование WHERE с внутренним соединением
Мы можем фильтровать записи на основе заданного условия, когда внутреннее соединение SQL используется с предложением WHERE. Предположим, что мы хотим получить строки, в которых продано больше 6 единиц.
В следующем запросе добавлено предложение WHERE для извлечения результатов со значением более 6 для проданных единиц.
ВЫБЕРИТЕ pz.CompanyId, pz.CompanyCity, pz.CompanyName,f.ItemName, f.UnitsSold ИЗ PizzaCompany pz INNER JOIN Foods f ON pz.CompanyId = f.CompanyId 9000WHERE f.6 ЗАКАЗАТЬ pz.CompanyCity |
Выполните приведенный выше код в SSMS, чтобы увидеть результат ниже. Этот запрос возвращает четыре таких записи.
Использование Group By с внутренним соединением
SQL Inner Join позволяет нам использовать предложение Group by вместе с агрегатными функциями для группировки результирующего набора по одному или нескольким столбцам. Группировка по обычно работает с внутренним соединением над окончательным результатом, возвращаемым после объединения двух или более таблиц. Если вы не знакомы с предложением Group by в SQL, я бы посоветовал пройти его, чтобы быстро понять эту концепцию. Ниже приведен код, в котором используется предложение Group By с внутренним соединением.
ВЫБЕРИТЕ pz.CompanyCity, pz.CompanyName, SUM(f.UnitsSold) AS TotalQuantitySold FROM PizzaCompany pz INNER JOIN Foods f ON pz.CompanyId = f.CompanyId pz.Company3Name, pz.Company BY pz.Company ЗАКАЗАТЬ pz.CompanyCity |
Здесь мы намерены получить общее количество товаров, проданных каждой пиццерией, присутствующей в городе. Как вы можете видеть ниже, совокупный результат в столбце «Общее количество проданных» равен 18 (7+11) и 9.(6+3) для Лос-Анджелеса и Сан-Диего соответственно.
Краткая заметка об Equi и Theta Join
Прежде чем мы закончим эту статью, давайте быстро пробежимся по терминам, которые разработчик SQL может время от времени слышать — Equi и Theta Join.
Equi Join
Как следует из названия, эквивалентное соединение содержит оператор равенства «=» либо в предложении Join, либо в условии WHERE. SQL Inner, Left, Right — все это эквивалентные соединения, когда оператор «=» используется в качестве оператора сравнения. Обычно, когда упоминается внутреннее соединение SQL, оно рассматривается как внутреннее равное соединение, только в необычной ситуации оператор равенства не используется.
Чтобы упростить задачу, я собираюсь обратиться к образцу базы данных AdventureWorksDW2017 и запустить запрос к существующим таблицам, чтобы продемонстрировать, как выглядит эквивалентное соединение.
ВЫБЕРИТЕ e.EmployeeKey, e.FirstName, e.Title, e.HireDate, fs.SalesAmountQuota FROM DimEmployee e INNER JOIN FactSalesQuota fs ON e.Employey 9mployeeKey = fs. |
Тета-соединение (неэквивалентное соединение)
Соединение без эквивалента в основном противоположно соединению по эквивалентности и используется, когда мы присоединяемся к условию, отличному от оператора «=». Этот тип редко используется на практике. Ниже приведен пример, в котором используется тета-соединение с оператором неравенства (<) для оценки прибыли путем оценки себестоимости и продажных цен в двух таблицах.
SELECT * FROM Table1 T1, Table2 T2 WHERE T1.ProductCost < T2.SalesPrice |
Заключение
Я надеюсь, что эта статья о «Внутреннем соединении SQL» обеспечивает понятный подход к одному из важных и часто используемых предложений — «Внутреннее соединение» в SQL Server для объединения нескольких таблиц. Если у вас есть какие-либо вопросы, пожалуйста, не стесняйтесь задавать их в разделе комментариев ниже.
Чтобы продолжить изучение SQL Joins, вы можете обратиться к следующим сообщениям:
- SQL OUTER JOIN обзор и примеры
- SQL Join введение и обзор
- Автор
- Последние сообщения
Гаури Махаджан
Гаури является специалистом по SQL Server и имеет более чем 6-летний опыт работы с глобальными многонациональными консалтинговыми и технологическими организациями.