By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
WITH t1 AS (
SELECT 1 AS id UNION ALL
SELECT 2 UNION ALL
SELECT 3 UNION ALL
SELECT 4 UNION ALL
SELECT 5 UNION ALL
SELECT 6 UNION ALL
SELECT 7 UNION ALL
SELECT 8 UNION ALL
SELECT 9 UNION ALL
SELECT 10
),
cte AS (
SELECT id,
ROW_NUMBER() OVER (ORDER BY id) rn1,
ROW_NUMBER() OVER (ORDER BY RAND(UNIX_TIMESTAMP())) rn2,
ROW_NUMBER() OVER (ORDER BY RAND(UNIX_TIMESTAMP()+1)) rn3
FROM t1
)
SELECT
t1.id,
t2.id AS id2,
t3.id AS id3
FROM cte t1
INNER JOIN cte t2
ON t1.rn1 = t2.rn2
INNER JOIN cte t3
ON t1.rn1 = t3.rn3
ORDER BY
t1.id;
id | id2 | id3 |
---|---|---|
1 | 3 | 5 |
2 | 2 | 1 |
3 | 9 | 6 |
4 | 7 | 4 |
5 | 4 | 10 |
6 | 5 | 2 |
7 | 8 | 8 |
8 | 1 | 9 |
9 | 10 | 7 |
10 | 6 | 3 |