[英]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.