MySQL объединение таблиц

Создадим две таблицы в MySQL

CREATE TABLE IF NOT EXISTS `productA` (
  `id` int unsigned NOT NULL,
  `name` text NOT NULL,
  PRIMARY KEY (`id`)
);
INSERT INTO `productA` (`id`, `name`) VALUES
  ('1', 'Груша'),
  ('2', 'Яблоко'),
  ('3', 'Апельсин'),
  ('4', 'Арбуз'),
  ('5', 'Дыня');


CREATE TABLE IF NOT EXISTS `productB` (
  `id` int unsigned NOT NULL,
  `name` text NOT NULL,
  PRIMARY KEY (`id`)
);
INSERT INTO `productB` (`id`, `name`) VALUES
  ('1', 'Груша'),
  ('2', 'Яблоко'),
  ('3', 'Апельсин'),
  ('4', 'Арбуз'),
  ('5', 'Картофель'),
  ('6', 'Петрушка'),
  ('7', 'Мандарин');

Пересечение и соединение данных из двух таблиц в MySQL — INNER JOIN:

SELECT * FROM producta INNER JOIN productb ON producta.name = productb.name;

Результат
mysql пересечение

Операция простого пересечения выборок из двух таблиц (как и в операциях над множествами):

SELECT name FROM producta INTERSECT SELECT name FROM productb;

Результат

пересечение таблица

Множество пересечение


Левостороннее и правостороннее объединение (в теории множеств это разность) данных в MySQL слева LEFT (справа оператор — RIGHT):

SELECT * FROM producta LEFT OUTER JOIN productb ON producta.name = productb.name WHERE productb.id IS null;

Результат
mysql разность
Множество разность


FULL OUTER JOIN in MySQL (объединение и соединение данных в MySQL)

SELECT * FROM producta LEFT JOIN productb ON producta.name = productb.name UNION SELECT * FROM producta RIGHT JOIN productb ON producta.name = productb.name;

Результат
FULL OUTER JOIN in MySQL пример

Операция простого объединения выборок из двух таблиц (как и в операциях над множествами):

SELECT name FROM producta UNION SELECT name FROM productb;

Результат

объединения выборок union пример

Множество объединение


Декартово произведение в MySQL CROSS JOIN

SELECT * FROM producta CROSS JOIN productb;

Результат
Декартово произведение в MySQL

2270

Leave a Reply

Ваш адрес email не будет опубликован.