【问题标题】:fetch data based on similar value根据相似值获取数据
【发布时间】:2018-12-25 08:28:55
【问题描述】:

我有两个表 table1 和 table2。

table1 有:

code   name
 10     ABC
 11     DEF
 12     FGH

table2 有:

code1  code2   code3      Buyer    
10       11      12        AAA        
12       11      10        BBB       
11       12      10        CCC        

现在,我想进行 SQL 查询,获取 code1、code2、code3、买家和 code1、code2 和 code3 的名称。 我的 SQL 查询是:

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}

这样的输出

【问题讨论】:

    标签: sql spring postgresql spring-mvc


    【解决方案1】:

    您必须使用不同的别名多次加入表

    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
    

    【讨论】:

      【解决方案2】:

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

               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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-22
        • 1970-01-01
        相关资源
        最近更新 更多