查看两个表之间所有可能的组合

jj-*_*-aa 3 mysql sql

我需要两个表之间的视图,基本上是 id 和它们之间的所有可能组合,不重复。表和数据:

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');
Run Code Online (Sandbox Code Playgroud)

在视图中我想要的结果:

view_rel_TAXTB
id_a,id_b
1,1
2,1
3,1
4,1
1,2
2,2
3,2
4,2
Run Code Online (Sandbox Code Playgroud)

Up_*_*One 5

这是您的查询!

 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)
Run Code Online (Sandbox Code Playgroud)