Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.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
MySQL在表1中为表2中的每个唯一年份复制一行_Mysql - Fatal编程技术网

MySQL在表1中为表2中的每个唯一年份复制一行

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

我需要进行一个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 | 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)