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;