Использование MySQL запросов LEFT, RIGHT и INNER JOIN.

Таблица a1

idfkname
11Имя 1 -1
22Имя 2 -2
32Имя 3 -2
42Имя 4 - 2
53Имя 5 - 3
66Имя 6 - 6

Таблица a2

id2name 2
1Имя 1
2Имя 2
3Имя 3
4Имя 4
5Имя 5

SELECT * FROM `a2` LEFT JOIN `a1` ON `a2`.`id2` = `a1`.`fk`;

id2name2idfkname
1Имя 111Имя 1 -1
2Имя 242Имя 4 - 2
2Имя 232Имя 3 -2
2Имя 222Имя 2 -2
3Имя 353Имя 5 - 3
4Имя 4NULLNULLNULL
5Имя 5NULLNULLNULL

SELECT * FROM `a2` RIGHT JOIN `a1` ON `a2`.`id2` = `a1`.`fk`;

id2name2idfkname
1Имя 111Имя 1 -1
2Имя 222Имя 2 -2
2Имя 232Имя 3 -2
2Имя 242Имя 4 - 2
3Имя 353Имя 5 - 3
NULLNULL66Имя 6 - 6

SELECT * FROM `a2` INNER JOIN `a1` ON `a2`.`id2` = `a1`.`fk`;

Если в данном запросе вместо INNER JOIN написать просто JOIN - результат не изменится, поскольку под просто JOIN подразумевается INNER JOIN.

id2name2idfkname
1Имя 111Имя 1 -1
2Имя 222Имя 2 -2
2Имя 232Имя 3 -2
2Имя 242Имя 4 - 2
3Имя 353Имя 5 - 3

Запрос на удаление записей из нескольких таблиц с испольтзованием JOIN

DELETE `a2`, `a1` FROM `a2` JOIN `a1` ON `a2`.`id2` = `a1`.`fk` WHERE `id2` = 2;

Комментарии

Если у Вас возникли вопросы, Вы можете задать их в форме ниже. В частности если Ваш вопрос по Bitrix и что то не получается - можно спросить. Ваш e-mail не публикуется, при этом я отвечу на него если будет что то по теме. Писать необходимо для людей - избегайте сленга, пишите орфографически правильно.

Имя:
E-mail:
Текст комментария:

Вы так же можете прочитать следующие статьи: