我正在尝试合并两个表,以在每个不同的用户旁边列出所有可用的产品。因此,对于每个不同的用户,所有产品都会重复使用。如果有2个用户和3个产品,则表的长度为6行。
Table_A
$_SESSION['test'] = array();
Table_B
if(isset($_POST['process'])) {
if(!isset($_SESSION['test'])) {
$_SESSION['test'] = array();
}
$array_merge = array_push($_SESSION['test'], $_POST['process']);
}
所需的输出
select user from users group by user;
user
u_1
u_2
到目前为止,这是我的代码:
select product from products group by product;
user
p_1
p_2
p_3
答案 0 :(得分:1)
(符合建议的 ANSI-92 标准,而不是使用 ANSI-89 标准,该标准包含逗号来分隔表名SQL语句):
select a.user, b.product
from users a
cross join products b
group by a.user, b.product;
答案 1 :(得分:0)
只需像这样使用笛卡尔联接:
SELECT users.user, products.product FROM users, products ORDER BY users.user ASC;
它将产生每个用户和组组合的结果。
答案 2 :(得分:0)
您在查询中忘记了逗号。
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');
查询1 :
SELECT * FROM `users`, `products` ORDER BY `user` ASC
Results :
| 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 |