首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于相似取值取数

基于相似取值取数
EN

Stack Overflow用户
提问于 2018-12-25 16:28:55
回答 2查看 52关注 0票数 1

我有两张桌子table1和table2。

table1具有:

代码语言:javascript
复制
code   name
 10     ABC
 11     DEF
 12     FGH

table2具有:

代码语言:javascript
复制
code1  code2   code3      Buyer    
10       11      12        AAA        
12       11      10        BBB       
11       12      10        CCC        

现在,我想进行SQL查询,获取code1、code2、code3、buyer和name of code1、code2和code3。我的SQL查询是:

代码语言:javascript
复制
SELECT t1.name, t2.code, t2.issued, t2.balance 
FROM table1 t1, table2 t2 
WHERE t1.code = t2.code; 

使用此SQL查询时,不会根据每个代码获取名称。输出出错。我想要像{code1=10,name=ABC,code2=11,name=DEF,code3=12,name=FGH,buyer=AAA}这样的输出

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-25 16:32:25

您必须使用不同的别名多次联接该表

代码语言:javascript
复制
SELECT t2.code, t2.issued, t2.balance,
       tname1.name as code1_name,
       tname2.name as code2_name,
       tname3.name as code3_name
FROM table2 t2
JOIN table1 tname1 WHERE tname1.code = t2.code1
JOIN table1 tname2 WHERE tname2.code = t2.code2
JOIN table1 tname3 WHERE tname3.code = t2.code3
票数 3
EN

Stack Overflow用户

发布于 2018-12-25 17:26:01

对于代码c1、c2和c3名称,您肯定需要3个连接,如下所示。

代码语言:javascript
复制
         Select code1,c1.name,code2
        ,c2.name,code3,c3.name,buyer
        from table2,
        table1 c1,table1 c2,table1 c3 where 
        c1.code=code1 and c2.code=code2 and 
        c3.code=code3
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53920629

复制
相关文章

相似问题

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