【问题标题】:SQL join, getting multiple columns with same nameSQL join,获取多个同名列
【发布时间】:2025-11-23 17:50:01
【问题描述】:

我有一张表,其中有一列 IDSERVICE_TYPE_TEXT,另一张表中有一列

ID, SERVICE_TYPE ... 

还有很多其他的专栏。

第二个表中的SERVICE_TYPE 包含第一个表中的ID。我想查询,以便从第一个表中获取与第二个表中给出的ID 匹配的SERVICE_TYPE_TEXT

我尝试加入,并在IDAS 上设置不同的名称,但总是在查询结果的末尾,我也从第一个列名为ID 的表中获取原始ID作为我在 AS 中定义的名称。

关于如何从第一个表中获取 ID 的任何建议? :)

【问题讨论】:

  • 请在问题中发布您的选择语句,可能是您选择列名的部分
  • 发布带有示例表结构的实际查询在这里肯定会有所帮助。
  • 也许您应该删除*,它几乎可以肯定在您的SELECT 子句中的某处(当然,如果我们可以看到您的查询,这将更容易诊断)

标签: sql join


【解决方案1】:

试试这样的,

SELECT a.ID AS ServiceID,
       a.Service_Type_Text,
       b.ID AS table2ID,
       b.Service_Type
FROM   table1 a
       INNER JOIN table2 b
           ON a.ID = b.Service_Type

【讨论】:

  • table2你想要什么?
  • 非常感谢!我个人不知道你可以这样分配列。
【解决方案2】:

设置您的查询,使其返回第二个表中的所有数据,但只返回第一个表中的必填字段(列)。
像这样的:

SELECT TAB1.SERVICE_TYPE_TEXT, TAB2.*
FROM TAB1
INNER JOIN
TAB2
ON TAB1.ID = TAB2.SERVICE_TYPE

【讨论】:

    【解决方案3】:

    试试

     SELECT a.ID AS ServiceID,
           a.Service_Type_Text,
           b.ID AS table2ID,
           b.Service_Type
    FROM   table1 a
           INNER JOIN table2 b
               ON a.ID = b.Service_Type AND b.ID='YOUR_ID';
    

    【讨论】:

      最近更新 更多