我是(My)SQL的新手,需要一些帮助: 在数据库中,我有3个表,一个例子:
购买:
id model price ------------ 1 1 2500 2 2 14000
制造商:
id name ----------- 1 Opel 2 Crysler
模型:
id name manufacturer ------------------------- 1 Astra 1 2 C 300 2
在表格中,购买模型是外键,并且链接到model.id 。在模型中制造商是外键,并且链接到manufacturer.id 。
我的目标是一张如下表:
id model price manufacturer ------------------------------ 1 Astra 2500 Opel 2 C300 14000 Chrysler
我知道如何在表购买中加入以获取模型的名称。不幸的是我不知道如何获得制造商?
我的SQL查询:
SELECT * FROM purchases JOIN model ON purchases.model = model.id
答案 0 :(得分:2)
尝试使用'内部联接':
select m.name as model, p.price, mf.name as manufacturer
from purchases p
inner join
model m on p.model = m.id
inner join
manufacturer mf on m.manufacturer = mf.id;
您可以将表格加入'其中'。
试一试:
select m.name as model, p.price, mf.name as manufacturer
from purchases p, manufacturer mf, model m
where m.manufacturer = mf.id
and p.model = m.id
但是"其中"不是很好,被认为是一种古老的方式。
有一个与您类似的问题,或许可以帮助您澄清问题: SQL Inner-join with 3 tables?
答案 1 :(得分:0)
连接表的正确方法是使用JOIN
(及相关)关键字。简单规则:从不在FROM
子句中使用逗号。始终使用明确的JOIN
语法:
select m.name as model, p.price, mf.name as manufacturer
from purchases p JOIN
model m
on p.model = m.id
manufacturer mf
on m.manufacturer = mf.id;