繁体   English   中英

MySQL Join查询-如何处理3个表?

[英]MySQL join query - how to approach 3 tables?

我是SQL的新手,开始研究联接。

假设我有三个表格,例如:1.温度,2.饮料,3. Drink_temp

temp_id    | temp
----------------------
1          |  cold
2          |  hot
3          |  warm


drink_id | drink 
---------------------
12       |  tea 
16       |  coke 
20       |  coffee 


drink_id | temp_id
------------------------
12       |  3
16       |  1
20       |  2

通过仅获取ID进行匹配,将需要什么样的查询来生成输出,使我可以使温度与饮料相匹配? 即:

drink   |  temp 
------------------
tea     |  warm 
coke    |  cold 
coffee  |  hot 

我知道我需要某种形式的加入。 我尝试过在温度和饮料之间进行左连接,但这对我不起作用。 我看了一些与此相关的问题,唯一让我感到困惑的是有3张桌子配对。

谢谢!

SQL中的三表JOIN语法:

SELECT t1.col, t3.col FROM table1
join table2 ON table1.primarykey = table2.foreignkey 
join table3 ON table2.primarykey = table3.foreignkey

我认为左联接或任何外部联接在这里都没有道理。 这应该是直接的内部联接。

我不太了解您的数据模型。 给定您提供的3个表,我将假设 Variety_id为temperature_id。

select d.drink, t.temp
from drink d
inner join drink_temp dt ON dt.drink_id = d.drink_id 
inner join temperature t ON t.temp_id = dt.variety_id
where d.drink_id in (:firstDrinkId, :secondDrinkId);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM