假设每个表中的列数相同,则可以按行号链接它们。没有一个
ORDER BY
子句,但行编号是不确定的,不能保证结果。
在MySQL 5.7及以下版本中:
SELECT Name, Grade, Type, Class
FROM (SELECT *, @rownum := @rownum + 1 AS rownum
FROM Student
CROSS JOIN (SELECT @rownum := 0) r
) s
JOIN (SELECT *, @rownum2 := @rownum2 + 1 AS rownum
FROM Type
CROSS JOIN (SELECT @rownum2 := 0) r
) t ON t.rownum = s.rownum
在MySQL8.0及以上版本中:
SELECT Name, Grade, Type, Class
FROM (SELECT *, ROW_NUMBER() OVER () AS rownum
FROM Student) s
JOIN (SELECT *, ROW_NUMBER() OVER () rownum
FROM Type) t ON t.rownum = s.rownum
输出:
Name Grade Type Class
John A+ Good 12
Tina B Avg 11
Demo on dbfiddle