我希望从两个有不同列名的表中获取一组数据行,每个表按行排列。
结果应该如下所示,空白处可以为空,第二部分中的team_id来自coach_id:
-----------------------------------------
player_id | team_id | score | improvement
-----------------------------------------
11 20 5
11 21 4
12 22 2
12 23 2
11 20 5
11 21 6
12 21 5
13 23 10
以下是模式结构:
这里是模式结构:
CREATE TABLE coaches
(`id` int, `team_id` int)
;
INSERT INTO coaches
(`id`, `team_id`)
VALUES
(1, 20),
(2, 21),
(3, 22),
(4, 23)
;
CREATE TABLE players
(`id` int, `player_id` int);
INSERT INTO players
(`id`, `player_id`)
VALUES
(1,11),
(2,12),
(3,13),
(4,14)
;
CREATE TABLE games
(`id` int, `player_id` int, `team_id` int, `score` int)
;
INSERT INTO games
(`id`, `player_id`, `team_id`, `score`)
VALUES
(1, 11, 20, 5),
(2, 11, 21, 4),
(3, 12, 22, 2),
(4, 12, 23, 2)
;
CREATE TABLE sessions
(`id` int, `player_id` int, `coach_id` int, `improvement` int)
;
INSERT INTO sessions
(`id`, `player_id`, `coach_id`, `improvement`)
VALUES
(1, 11, 1, 5),
(2, 11, 2, 6),
(3, 12, 2, 5),
(4, 13, 4, 10)
;
尝试了这个方法,但效果并不理想:
SELECT tweets.player_id
,tweets.team_id
,follows.coach_id
FROM tweets FULL OUTER JOIN follows ON (1 = 0);