просмотреть все возможные комбинации между двумя таблицами

Обновить

November 2018

Просмотры

1.1k раз

3

Мне нужен вид между двумя таблицами, в основном с идентификаторами и все возможными комбинациями между ними без повтора. Таблицы и данные:

CREATE TABLE `ta` (
    `id` INT(11) NOT NULL AUTO_INCREMENT,
    `name` VARCHAR(50) NULL DEFAULT NULL,
    PRIMARY KEY (`id`)
)

INSERT INTO `ta` (`id`, `name`) VALUES (1, 'ta1');
INSERT INTO `ta` (`id`, `name`) VALUES (2, 'ta2');
INSERT INTO `ta` (`id`, `name`) VALUES (3, 'ta3');
INSERT INTO `ta` (`id`, `name`) VALUES (4, 'ta4');


CREATE TABLE `tb` (
    `id` INT(11) NOT NULL AUTO_INCREMENT,
    `name` VARCHAR(50) NULL DEFAULT NULL,
    PRIMARY KEY (`id`)
)

INSERT INTO `tb` (`id`, `name`) VALUES (1, 'tb1');
INSERT INTO `tb` (`id`, `name`) VALUES (2, 'tb2');

Результаты я хочу в представлении:

view_rel_TAXTB
id_a,id_b
1,1
2,1
3,1
4,1
1,2
2,2
3,2
4,2

1 ответы

4

Вот ваш запрос!

 mysql> select a.id as id_a,b.id as id_b from ta a
        -> cross join tb b;
    +------+------+
    | id_a | id_b |
    +------+------+
    |    1 |    1 |
    |    1 |    2 |
    |    2 |    1 |
    |    2 |    2 |
    |    3 |    1 |
    |    3 |    2 |
    |    4 |    1 |
    |    4 |    2 |
    +------+------+
    8 rows in set (0.00 sec)