mysql从另一个具有相同id的表中获取名称

时间:2014-08-26 05:20:11

标签: php mysql sql

我认为这是一个非常简单的问题,但我无法破解它。

我的mysql数据库中有两个表,clubs_db和leagues_db。

clubs_db
id    |    name
 1    |    Club1
 2    |    Club2
 3    |    Club3
 4    |    Club4
 5    |    Club5
 6    |    Club6

leagues_db
id   |  team1  |  team2  | team3  |  team1_name  |  team2_name  |  team3_name  |
1    |    1    |   2     |   3    |              |              |              |
2    |    4    |   5     |   6    |              |              |              |

我想要做的就是将相关的俱乐部名称插入来自clubs_db的leagues_db。

我还希望当leagues_db中的值发生变化时会自动发生这种情况。

谢谢,如果有人可以帮助我。

1 个答案:

答案 0 :(得分:1)

听起来你可以通过删除teamN_name列并使用将两个表连接在一起的视图来提供更好的服务:

CREATE VIEW leagues_with_names AS
SELECT
    l.id, l.team1, l.team2, l.team3,
    t1.name AS team1_name,
    t2.name AS team2_name,
    t3.name AS team3_name
FROM leagues_db l
LEFT OUTER JOIN clubs_db t1 ON l.team1 = t1.id
LEFT OUTER JOIN clubs_db t2 ON l.team2 = t2.id
LEFT OUTER JOIN clubs_db t3 ON l.team3 = t3.id;

然后你可以SELECT ... FROM leagues_with_names而不必担心加入的细节。请注意,视图本身不是表格;它会自动从其他两个表中获取数据。这意味着它将始终是最新的。

See a demo of this query。)