Продажа квадроциклов, снегоходов и мототехники
second logo
Пн-Чт: 10:00-20:00
Пт-Сб: 10:00-19:00 Вс: выходной

+7 (812) 924 3 942

+7 (911) 924 3 942

Содержание

Какая смазка лучше подходит для внутренних и наружных шрусов

Автовладельцы, предпочитающие самостоятельно заниматься обслуживанием собственного авто, неминуемо сталкиваются с проблемой выбора подходящей смазки для шарниров равных угловых скоростей (ШРУС) привода автомобиля. И усугубляет данную проблему регулярный рост ассортимента этого вида смазок в торговой сети.

Чтобы разобраться в том, какую смазку лучше закладывать в ШРУС, в первую очередь, придётся внимательно отнестись к самому ШРУСу, а точнее разобраться в его разновидностях, поскольку ШРУС ШРУСУ – рознь.

ШРУСы внутренние и ШРУСы внешние

Пи выборе смазки мы должны учесть, о каком ШРУСе идёт речь – внутреннем или внешнем. Оба они служат для передачи вращательного движения от агрегатов трансмиссии (КПП или редукторов) к колесам. Они обеспечивают постоянную скорость вращения приводных валов (полуосей) независимо от перемещений подвески и агрегатов трансмиссии, а также угла поворота колес.

По факту привод состоит из двух закреплённых на полуоси ШРУСов – внутреннего и внешнего, причём это разные по своей конструкции узлы. Внутренний – вставляется в агрегат трансмиссии, наружный – закреплён в ступице колеса. Важно учитывать, что смазки для внешнего и внутреннего ШРУС – два продукта с разными функциями, и к их выбору и применению следует подойти максимально ответственно.

Смазка для внешнего ШРУС

Для внешних ШРУС (ШРУС со стороны колеса) на шариковых подшипниках скольжения используют смазку с дисульфидом молибдена. В роли смазки для наружного ШРУСа часто выступает универсальная молибденовая автомобильная смазка с широким спектром применения. Например, в шлицевых соединениях карданных валов, втулочно-пальцевых, шкворневых и шарово-шарнирных сочленениях, а также опорно-сцепных устройствах грузовых автомобилей и спецтехники. Смазки для внешнего ШРУС обычно достаточно густые: их консистенция соответствует 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

Кузов/объемПериод установкиКонфигурация
UZJ120L2002. 11-2009.08 4.7L Бензин 2UZFE EFI (271 л.с. / 199 кВт) Полный привод (4WD). Левый руль
UZJ120L2002.11-2009.08 4.7L Бензин 2UZFE EFI (271 л.с. / 199 кВт) Полный привод (4WD). Левый руль

4RUNNER

Кузов/объем
Период установки
Конфигурация
GRN215L2002. 11-2009.08 4.0L Бензин 1GRFE EFI (245 л.с. / 180 кВт) Полный привод (4WD). Левый руль
GRN215L2002.11-2009.08
4.0L Бензин 1GRFE EFI (245 л.с. / 180 кВт) Полный привод (4WD). Левый руль
UZN215L2002.08-2009.08 4.7L Бензин 2UZFE EFI (235 л.с. / 173 кВт) Полный привод (4WD). Левый руль
UZN215L2002. 08-2009.08 4.7L Бензин 2UZFE EFI (235 л.с. / 173 кВт) Полный привод (4WD). Левый руль

FJ CRUISER

Кузов/объемПериод установкиКонфигурация
GSJ15L2006.
01-2009.08
4.0L Бензин 1GRFE EFI (258 л.с. / 190 кВт) Полный привод (4WD). Левый руль
GSJ15L2006.01-2009.08 4.0L Бензин 1GRFE EFI (258 л.с. / 190 кВт) Полный привод (4WD). Левый руль

HILUX SURF

Кузов/объемПериод установкиКонфигурация
GRN215W2005. 08-2009.08 4.0L Бензин 1GRFE EFI (249 л.с. / 183 кВт) Полный привод (4WD). Правый руль
GRN215W
2005.08-2009.08
4.0L Бензин 1GRFE EFI (249 л.с. / 183 кВт) Полный привод (4WD). Правый руль
KDN215W2002.11-2005.08 3.0L Дизель 1KDFTV (170 л.с. / 125 кВт) Полный привод (4WD). Правый руль
KDN215W2002. 11-2005.08
3.0L Дизель 1KDFTV (170 л.с. / 125 кВт) Полный привод (4WD). Правый руль
RZN215W2002.11-2004.08 2.7L Бензин 3RZFE EFI (150 л.с. / 110 кВт) Полный привод (4WD). Правый руль
RZN215W2002.11-2004.08 2.7L Бензин 3RZFE EFI (150 л.с. / 110 кВт) Полный привод (4WD). Правый руль
TRN215W2004. 08-2009.08 2.7L Бензин 2TRFE EFI (163 л.с. / 120 кВт) Полный привод (4WD). Правый руль
TRN215W2004.08-2009.08 2.7L Бензин 2TRFE EFI (163 л.с. / 120 кВт) Полный привод (4WD). Правый руль
VZN215W
2002.11-2005.08
3.4L Бензин 5VZFE EFI (185 л.с. / 136 кВт) Полный привод (4WD). Правый руль
VZN215W2002. 11-2005.08 3.4L Бензин 5VZFE EFI (185 л.с. / 136 кВт) Полный привод (4WD). Правый руль

LAND CRUISER PRADO

Кузов/объемПериод установкиКонфигурация
GRJ120W2005. 08-2009.08 4.0L Бензин 1GRFE EFI (249 л.с. / 183 кВт) Полный привод (4WD). Правый руль
GRJ120W2005.08-2009.08 4.0L Бензин 1GRFE EFI (249 л.с. / 183 кВт) Полный привод (4WD). Правый руль
GRJ121W2005.08-2009.08 4.0L Бензин 1GRFE EFI (249 л.с. / 183 кВт) Полный привод (4WD). Правый руль
GRJ121W2005. 08-2009.08 4.0L Бензин 1GRFE EFI (249 л.с. / 183 кВт) Полный привод (4WD). Правый руль
KDJ120W2002.11-2007.07 3.0L Дизель 1KDFTV (170 л.с. / 125 кВт) Полный привод (4WD). Правый руль
KDJ120W2002.11-2007.07 3.0L Дизель 1KDFTV (170 л.с. / 125 кВт) Полный привод (4WD). Правый руль
KDJ121W2002. 11-2005.08 3.0L Дизель 1KDFTV (170 л.с. / 125 кВт) Полный привод (4WD). Правый руль
KDJ121W2002.11-2005.08 3.0L Дизель 1KDFTV (170 л.с. / 125 кВт) Полный привод (4WD). Правый руль
KDJ125W2002.11-2005.08 3.0L Дизель 1KDFTV (170 л.с. / 125 кВт) Полный привод (4WD). Правый руль
KDJ125W2002. 11-2005.08 3.0L Дизель 1KDFTV (170 л.с. / 125 кВт) Полный привод (4WD). Правый руль
RZJ120W2002.09-2004.08 2.7L Бензин 3RZFE EFI (150 л.с. / 110 кВт) Полный привод (4WD). Правый руль
RZJ120W2002.09-2004.08 2.7L Бензин 3RZFE EFI (150 л.с. / 110 кВт) Полный привод (4WD). Правый руль
RZJ125W2002. 09-2004.08 2.7L Бензин 3RZFE EFI (150 л.с. / 110 кВт) Полный привод (4WD). Правый руль
RZJ125W2002.09-2004.08 2.7L Бензин 3RZFE EFI (150 л.с. / 110 кВт) Полный привод (4WD). Правый руль
TRJ120W2004.08-2009.08 2.7L Бензин 2TRFE EFI (163 л.с. / 120 кВт) Полный привод (4WD). Правый руль
TRJ120W2004. 08-2009.08 2.7L Бензин 2TRFE EFI (163 л.с. / 120 кВт) Полный привод (4WD). Правый руль
TRJ125W2004.08-2009.08 2.7L Бензин 2TRFE EFI (163 л.с. / 120 кВт) Полный привод (4WD). Правый руль
TRJ125W2004.08-2009.08 2.7L Бензин 2TRFE EFI (163 л.с. / 120 кВт) Полный привод (4WD). Правый руль
VZJ120W2002. 09-2005.08 3.4L Бензин 5VZFE EFI (185 л.с. / 136 кВт) Полный привод (4WD). Правый руль
VZJ120W2002.09-2005.08 3.4L Бензин 5VZFE EFI (185 л.с. / 136 кВт) Полный привод (4WD). Правый руль
VZJ121W2002.09-2005.08 3.4L Бензин 5VZFE EFI (185 л.с. / 136 кВт) Полный привод (4WD). Правый руль
VZJ121W2002. 09-2005.08 3.4L Бензин 5VZFE EFI (185 л.с. / 136 кВт) Полный привод (4WD). Правый руль
VZJ125W2002.09-2005.08 3.4L Бензин 5VZFE EFI (185 л.с. / 136 кВт) Полный привод (4WD). Правый руль
VZJ125W2002.09-2005.08 3.4L Бензин 5VZFE EFI (185 л.с. / 136 кВт) Полный привод (4WD). Правый руль

LAND CRUISER PRADO

Кузов/объемПериод установкиКонфигурация
GRJ120L2003. 01-2009.08 4.0L Бензин 1GRFE EFI (276 л.с. / 203 кВт) Полный привод (4WD). Левый руль
GRJ120L2003.01-2009.08 4.0L Бензин 1GRFE EFI (276 л.с. / 203 кВт) Полный привод (4WD). Левый руль
GRJ125L2003.01-2009.08 4.0L Бензин 1GRFE EFI (249 л.с. / 183 кВт) Полный привод (4WD). Левый руль
GRJ125L2003. 01-2009.08 4.0L Бензин 1GRFE EFI (249 л.с. / 183 кВт) Полный привод (4WD). Левый руль
KDJ120L2002.09-2009.08 3.0L Дизель 1KDFTV (173 л.с. / 127 кВт) Полный привод (4WD). Левый руль
KDJ120L2002.09-2009.08 3.0L Дизель 1KDFTV (173 л.с. / 127 кВт) Полный привод (4WD). Левый руль
KDJ125L2002. 09-2009.08 3.0L Дизель 1KDFTV (173 л.с. / 127 кВт) Полный привод (4WD). Левый руль
KDJ125L2002.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]. [PizzaCompany] ([CompanyId], [CompanyName], [CompanyCity]) VALUES(2,’Pizza Hut’,’Сан-Франциско’) ;

ВСТАВИТЬ В [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 3

0002 17

18

Создание таблицы [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]. [Foods] ([ItemId], [ItemName ], [UnitsSold], [CompanyId]) VALUES(5,’Breadsticks’,7,1)

ВСТАВИТЬ В [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]. [WaterPark] ([WaterParkLocation], [CompanyId]) VALUES (‘Бульвар 2’,5)

 

ВЫБЕРИТЕ * ИЗ Аквапарка

И ниже вывод этой таблицы.

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

Теперь мы собираемся включить эту третью таблицу в предложение 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. 9000CompanyId = f.00002 ПРИСОЕДИНЯЙТЕСЬ к WaterPark w ON w.CompanyId = pz.CompanyId

ЗАКАЗ ПО 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

9000

WHERE 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-летний опыт работы с глобальными многонациональными консалтинговыми и технологическими организациями.

Разное

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

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