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

时间:2014-03-24 21:25:47

标签: 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');

我想在视图中找到的结果:

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

1 个答案:

答案 0 :(得分: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)