如何显示sql中三个表的数据?

时间:2015-12-14 11:57:36

标签: mysql sql

我希望通过连接显示来自三个表的数据,但它不起作用。 我有三个表:linktablefriendscarbrands。 列是friendnumer,lastname和carbrands。 表链接表必须显示:column friendnumber。 表朋友必须显示:列姓氏 和表carbrands必须显示列品牌。

我的sql是:

SELECT friendnumber,lastname, brand
From linktable,
     friends,
     carbrands
WHERE linktable.friendnumber = friends.lastname
  and friends.lastname = carbrands.brand ;

出了什么问题?

有人可以帮助我吗?

提前感谢。

1 个答案:

答案 0 :(得分:0)

你的问题是缺乏信息。您的架构究竟是如何定义的?

我们假设您有以下表格:

friends:
+----+---------------+
| id | name          |
+----+---------------+
| 1  | alice         |
| 2  | bob           |
| 3  | carol         |
+----+---------------+

carbrands:
+----+---------------+
| id | brandname     |
+----+---------------+
| 1  | Škoda         |
| 2  | Volkswagen    |
| 3  | Ferrari       |
+----+---------------+

linktable:
+----------+---------+
| friendid | brandid |
+----------+---------+
| 1        | 3       |
| 2        | 2       |
| 2        | 1       |
+----------+---------+

然后,您可以使用以下声明选择每位朋友的姓名和他们驾驶的汽车:

SELECT friends.name, carbrands.brandname
FROM friends
JOIN linktable
ON friends.id = linktable.friendid
JOIN carbrands
ON linktable.brandid = carbrands.id;

这将为您提供三行:

Alive驾驶斯柯达。 鲍勃驾驶大众汽车和法拉利。