代码之家  ›  专栏  ›  技术社区  ›  Fábio Antunes

SQL-选择内部选择

sql
  •  2
  • Fábio Antunes  · 技术社区  · 15 年前

    我的SQL技能很简单,所以我不知道如何做到这一点。在这里。

    让我们考虑一下。

    Table A
    ID              Name              LastNameID
    1               Jonh              23
    2               Helen             19
    
    Table B
    ID              LastName
    23              Bauer
    19              Summers
    

    .

    SELECT ID Name LastNameID FROM TableA
    

    如何在该表中添加另一个select,它将根据表A中的lastnameid从表B返回姓氏。

    在这种情况下,我通常使用一个简单的函数和编程语言,用于为每一个返回行执行该操作。

    但我认为是时候单独使用SQL来实现这一点了。

    感谢您的帮助。

    3 回复  |  直到 15 年前
        1
  •  5
  •   Chris Latta    15 年前

    您只需要使用lastnameid字段联接表:

    SELECT TableA.[Name] AS FirstName, TableB.LastName
    FROM TableA 
      INNER JOIN TableB ON TableA.LastNameId = TableB.LastNameId
    
        2
  •  0
  •   jrharshath    15 年前

    您在询问“如何在select内选择”。通常,这样的查询是以联接的形式编写的,而不是以子选择的形式编写的。对于少数表,执行联接比执行子选择要好。

    对您的应用程序的查询将是

    SELECT firstNames.Name, lastNames.LastName FROM TableA firstNames, TableB lastNames
    WHERE firstNames.LastNameId = lastNames.LastNameId;
    

    这与以显式连接形式编写查询相同,如Chris在其答案中所示。

        3
  •  0
  •   JBrooks    15 年前

    这里有一些很好的答案,但是如果您在一个表中有名字,而在另一个表中有姓氏通过一个ID链接,我想是时候回顾一下基础知识了。首先查看Northwind数据库,然后查看一些数据库入门包 here.