Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL将两个表合并到一个表中,每个表后面都有重复的不同值_Sql - Fatal编程技术网

SQL将两个表合并到一个表中,每个表后面都有重复的不同值

SQL将两个表合并到一个表中,每个表后面都有重复的不同值,sql,Sql,我试图将两个表合并起来,在每个不同的用户旁边列出所有可用的产品。因此,对于每个不同的用户,产品都会重复。如果有2个用户和3个产品,则该表将有6行长 表A select user from users group by user; user u_1 u_2 表B select product from products group by product; user p_1 p_2 p_3 期望输出 user product u_1 p_1 u_1 p_2 u_1 p_3

我试图将两个表合并起来,在每个不同的用户旁边列出所有可用的产品。因此,对于每个不同的用户,产品都会重复。如果有2个用户和3个产品,则该表将有6行长

表A

select user from users group by user;

user 
u_1
u_2
表B

select product from products group by product;

user 
p_1
p_2
p_3
期望输出

user  product
u_1   p_1
u_1   p_2
u_1   p_3
u_2   p_1
u_2   p_2
u_2   p_3
以下是我迄今为止的代码:

select a.user, b.product from (select user from users group by user) a
(select product from products group by product) b;

只需使用笛卡尔连接,如下所示:

SELECT users.user, products.product FROM users, products ORDER BY users.user ASC;

它将生成每个用户和组组合的结果。

您在查询中忘记了逗号

MySQL 5.6架构设置

CREATE TABLE `users`
(
  user VARCHAR(255)
);

CREATE TABLE `products`
(
  product VARCHAR(255)
);

INSERT INTO `users` VALUES ('u_1'), ('u_2');

INSERT INTO `products` VALUES ('p_1'), ('p_2'), ('p_3');
SELECT * FROM `users`, `products` ORDER BY `user` ASC
| user | product |
|------|---------|
|  u_1 |     p_1 |
|  u_1 |     p_2 |
|  u_1 |     p_3 |
|  u_2 |     p_1 |
|  u_2 |     p_2 |
|  u_2 |     p_3 |
查询1

CREATE TABLE `users`
(
  user VARCHAR(255)
);

CREATE TABLE `products`
(
  product VARCHAR(255)
);

INSERT INTO `users` VALUES ('u_1'), ('u_2');

INSERT INTO `products` VALUES ('p_1'), ('p_2'), ('p_3');
SELECT * FROM `users`, `products` ORDER BY `user` ASC
| user | product |
|------|---------|
|  u_1 |     p_1 |
|  u_1 |     p_2 |
|  u_1 |     p_3 |
|  u_2 |     p_1 |
|  u_2 |     p_2 |
|  u_2 |     p_3 |

CREATE TABLE `users`
(
  user VARCHAR(255)
);

CREATE TABLE `products`
(
  product VARCHAR(255)
);

INSERT INTO `users` VALUES ('u_1'), ('u_2');

INSERT INTO `products` VALUES ('p_1'), ('p_2'), ('p_3');
SELECT * FROM `users`, `products` ORDER BY `user` ASC
| user | product |
|------|---------|
|  u_1 |     p_1 |
|  u_1 |     p_2 |
|  u_1 |     p_3 |
|  u_2 |     p_1 |
|  u_2 |     p_2 |
|  u_2 |     p_3 |
使用

(符合建议的ANSI-92标准,而不是使用包含逗号的ANSI-89标准来分隔SQL语句中的表名):