MySQL在表1中为表2中的每个唯一年份复制一行
我需要进行一个select查询,以便为表MySQL在表1中为表2中的每个唯一年份复制一行,mysql,Mysql,我需要进行一个select查询,以便为表supervisor中的每个唯一年份复制每个用户行 我目前的查询是: SELECT a.year, CONCAT(x.first) AS Employee FROM userdata.users x LEFT JOIN userdata.supervisor a ON x.userid = a.employeeid GROUP BY a.year, Employee ORDER BY x.first, x.last 这给了我输出: YEAR | E
supervisor
中的每个唯一年份复制每个用户
行
我目前的查询是:
SELECT
a.year, CONCAT(x.first) AS Employee
FROM userdata.users x
LEFT JOIN userdata.supervisor a ON x.userid = a.employeeid
GROUP BY a.year, Employee
ORDER BY x.first, x.last
这给了我输出:
YEAR | EMPLOYEE
2020 Adam
2021 Adam
Anna
2021 Danielle
2020 John
2021 John
预期产出:
YEAR | EMPLOYEE
2020 Adam
2021 Adam
2020 Anna
2021 Anna
2020 Danielle
2021 Danielle
2020 John
2021 John
A simple cross join may do.
DROP TABLE IF EXISTS T,T1;
CREATE TABLE T(NAME VARCHAR(10));
CREATE TABLE T1 (YR INT);
INSERT INTO T VALUES ('AAA'),('BBB'),('CCC');
INSERT INTO T1 VALUES (2001),(2002),(2002),(2003),(2004);
SELECT YR,NAME
FROM T USERS
CROSS JOIN (SELECT DISTINCT YR FROM T1) SUPERVISOR
ORDER BY YR,NAME ;
+------+------+
| YR | NAME |
+------+------+
| 2001 | AAA |
| 2001 | BBB |
| 2001 | CCC |
| 2002 | AAA |
| 2002 | BBB |
| 2002 | CCC |
| 2003 | AAA |
| 2003 | BBB |
| 2003 | CCC |
| 2004 | AAA |
| 2004 | BBB |
| 2004 | CCC |
+------+------+
12 rows in set (0.001 sec)