首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql:使用ON子句从3个表中提取数据

Mysql:使用ON子句从3个表中提取数据
EN

Stack Overflow用户
提问于 2020-08-28 17:14:26
回答 1查看 37关注 0票数 1

我有一个与从3个表的组合中获取记录有关的查询,返回的结果将在外键的帮助下使用ON子句获取。

假设我有三个表,名为table1table2table3

表: table1

代码语言:javascript
复制
id   name   t2_id   t3_id
11   John   21      31
12   Doe    22      32

表: table2

代码语言:javascript
复制
id   value
21   ABC-1
22   ABC-2

表: table3

代码语言:javascript
复制
id   value
31   XYZ-1
32   XYZ-2

在表中:表1、t2_idt3_id分别表示表table2和table3中的id。

问题:

我想从table1中提取记录,但也要使用table2和表3中的外键从table1中提取值。

期望的结果:

代码语言:javascript
复制
id   name   t2_value   t3_value
11   John   ABC-1      XYZ-1
12   Doe    ABC-2      XYZ-2

我现在所做的:

我编写了下面的查询来执行此任务,但它不起作用。

代码语言:javascript
复制
SELECT table1.id, table1.name, table2.value AS t2_value FROM table1 JOIN table2 ON (table1.t2_id=table2.id);

上述查询的输出如下:

代码语言:javascript
复制
id   name   t2_value
11   John   ABC-1
12   Doe    ABC-2

但是我也想把第三个表的值组合起来。

请帮帮忙

重要注意事项:我想使用单个MySQL查询.

完成此操作

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-28 17:22:14

你走在正确的轨道上。只需为join添加另一个table3子句,并将所需列添加到select列表中:

代码语言:javascript
复制
SELECT table1.id, table1.name, table2.value AS t2_value, table3.value.value AS t3_value
FROM   table1 
JOIN   table2 ON table1.t2_id = table2.id
JOIN   table3 ON table1.t3_id = table3.id
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63638251

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档