MySQL INNER JOIN

Опубликовано: 13 Ноябрь 2022
на канале: spa it
94
8

INNER JOIN: Returns records that have matching values in both tables
Повертає записи, які мають відповідні значення в обох таблицях

Повертаємось до прикладу подібного до першого відео циклу

DROP DATABASE base2;
CREATE DATABASE base2;
USE base2;
CREATE TABLE Customers
(
Id INT PRIMARY KEY AUTO_INCREMENT,
Age INT,
FirstName VARCHAR(20) NOT NULL,
LastName VARCHAR(20) NOT NULL,
Phone VARCHAR(20) NOT NULL UNIQUE
);




INSERT Customers(Age, FirstName, LastName, Phone)
VALUES (18,'Ganna','Velickiv','0688889977');
INSERT Customers(Age, FirstName, LastName, Phone)
VALUES (19,'Ury','Medvejuy','0688889988');
INSERT Customers(Age, FirstName, LastName, Phone)
VALUES (39,'Anton','Chernov','0687889988');
INSERT Customers(Age, FirstName, LastName, Phone)
VALUES (22,'Anna','Ignatss','0687885988');
INSERT Customers(Age, FirstName, LastName, Phone)
VALUES (32,'Olga','Hiv','0681885988')

Новий варіант Orders

SHOW INDEX FROM Orders;


USE base2;


DROP TABLE Orders;
CREATE TABLE Orders
(
Id INT PRIMARY KEY AUTO_INCREMENT,
CustomerId INT,
CreatedAt Date,
Details VARCHAR(20)
);



INSERT Orders(CustomerId, CreatedAt, Details)
VALUES (2, Now(), 'The Thrill is Gone');
INSERT Orders(CustomerId, CreatedAt, Details)
VALUES (1, Now(), 'Savoy Brown Blues');
INSERT Orders(CustomerId, CreatedAt, Details)
VALUES (1, Now(), 'Leaving Trunk');
INSERT Orders(CustomerId, CreatedAt, Details)
VALUES (3, Now(), 'Cut You Loose');
INSERT Orders(CustomerId, CreatedAt, Details)
VALUES (1, Now(), 'Cut You Loose');
INSERT Orders(CustomerId, CreatedAt, Details)
VALUES (1, Now(), 'Savoy Brown Blues');

Так виглядає Customers
mysql -e 'select * from base2.Customers'
Так виглядає Orders
mysql -e 'select * from base2.Orders'
шаблон
SELECT column_list
FROM table_1
INNER JOIN table_2 ON join_condition;


USE base2;


Повернемо всі записи записи за умови Orders.CustomerId=Customers.Id
SELECT *
FROM Customers
INNER JOIN Orders ON Orders.CustomerId=Customers.Id;

Або оберемо частину стовбчиків.

SELECT Customers.Id, Customers.FirstName, Customers.LastName, Orders.Details
FROM Customers
INNER JOIN Orders ON Orders.CustomerId=Customers.Id;


SELECT Customers.Id, Customers.FirstName, Customers.LastName, Orders.Details
FROM Customers
INNER JOIN Orders ON Orders.CustomerId=Customers.Id;