mysql - (Mysql : Join multiple tables

标签 mysql sql database join

我是 (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


在表 purchases 中,model 是一个外键并且链接到 model.id。在模型中 manufacturer 是一个外键并且链接到 manufacturer.id

我的目标是一个如下所示的表格:

id model   price  manufacturer
------------------------------
1   Astra  2500   Opel
2   C300   14000  Chrysler

我知道如何在表 purchases 中进行 JOIN 以获取模型名称。不幸的是我不知道如何找到制造商?

我的 SQL 查询:

SELECT * FROM purchases
JOIN model
ON purchases.model = model.id

最佳答案

用'inner join'试试:

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;

您可以使用“where”加入您的表格。

试一试:

 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

但是用“where”不是很好,算古风了。

有个问题和你的类似,也许可以帮助你弄清楚问题: SQL Inner-join with 3 tables?

关于mysql - (Mysql : Join multiple tables,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37099825/

相关文章:

python - 对 SQL INSERT 语句使用 Python dict

SQL - 基于多个条件的计数

mysql - 非重复月度 SQL

database - 如果我们在共享位置安装了 redgate 工具 "Schema Compare of Oracle"

MySQL如何构建Where Clause

php - 购物车、 session 还是数据库?

java - 使用 native SQL 的 Hibernate 批处理

mysql - 如何通过 DBIx 为多对多关系插入数据?

sql - 如何从SQL中的电话号码将电话号码前缀与国家/地区匹配

php - 连接到 SQL 主机时出错,PHP 脚本 : PHPVALLEY Microjob Script