首页 文章

选择包含来自其他两个表的字段的映射表

提问于
浏览
1

我有一个映射表,引用来自两个不同表的ID . 我想选择映射表,每个id被相应表中的另一个字段替换 .

更明确一点:有三个表,每个表有两列:

  • Table1有一个id(主键)和field1

  • Table2有一个id(主键)和field2

  • Table3(映射表)包含字段Table1_id(在Table1.id中取值)和Table2_id(在Table2.id中取值)

我想要的是将Table1.field1和Table2.field2的Table3的内容作为列 .

我知道如何使用内部联接替换映射表中的一个列与其他表之一的另一列:

SELECT Table1.field1, Table3.Table2_id
FROM Table1
INNER JOIN Table3
ON Table1.id=Table3.Table1_id;

但是我不知道如何用两列基本上做同样的事情 .

4 回答

  • 5

    如果我理解正确,你试图从表1中获得 field1 ,从表2中获得 field2 . 如果是这样,你只需要加入三个表

    SELECT a.field1, c.field2
    FROM Table1 a
    INNER JOIN Table3 b
    ON a.id=b.Table1_id
    INNER JOIN Table2 c
    ON b.Table2_id = c.id
    
  • 0

    做另一个加入 .

    SELECT Table1.field1, Table2.field
    FROM Table1
    INNER JOIN Table3
    ON Table1.id = Table3.Table1_id
    INNER JOIN Table 2 
    ON Table2.id = table3.table2_id;
    
  • 0

    你只需要加入所有三个表;就像是

    SELECT Table1.Field1, Table2.Field2
    FROM Table3
    JOIN Table1 ON Table1.Id = Table3.Table1_id
    JOIN Table2 ON Table2.Id = Table3.Table2_id
    
  • 0

    我不知道我是否正确理解了你想要实现的目标,但这应该可以从两个表中加入他们的结果

    SELECT Table1.field1, Table2.field2
    FROM Table1
    INNER JOIN Table3 ON Table1.id = Table3.Table1_id;
    INNER JOIN Table2 ON Table2.id = Table3.Table2_id;
    

相关问题