【问题标题】:How to join two tables with multiple columns in SQL如何在 SQL 中连接具有多个列的两个表
【发布时间】:2019-07-18 23:04:32
【问题描述】:

我有一个表,我正在尝试将两个具有公共列 ID 的数据库连接起来。分别进行查询,我得到了我想要的。将它们放在一起并错误中心大声笑。

我希望桌子有 客户ID package_id 顾客姓名 在一张桌子上

我尝试了外、全、左和右连接,我得到“无法绑定多部分标识符”和“关键字''附近的语法不正确”。错误。

SELECT 
    TABLEA.customer_id, 
    TABLEA.package_id
FROM 
    TABLEA A
OUTER JOIN
    (
    SELECT
        TABLEB.customer_name,
        TABLEB.customer_id,


    FROM
        TABLEB B
    )
ON
    A.customer_id = B.customer_id

我收到“无法绑定多部分标识符”和“关键字 '' 附近的语法不正确”。错误。

【问题讨论】:

  • 请在代码问题中给出minimal reproducible example--剪切&粘贴&可运行代码;具有期望和实际输出的示例输入(包括逐字错误消息);标签和明确的规范和解释。这包括您可以提供的最少代码,即您显示的代码可以通过您显示的代码扩展为不可以。 (调试基础。) PS 你有一个语法错误。阅读语法。尽可能多地表明组成子表达式是可以的。

标签: sql database join


【解决方案1】:

三件事:

  • 您需要一个表别名。
  • OUTER JOIN(通常)没有任何意义。你需要FULLLEFTRIGHT
  • 为表声明表别名后,您需要使用它。

所以:

SELECT TABLEA.customer_id, TABLEA.package_id
FROM TABLEA A LEFT OUTER JOIN
     (SELECT B.customer_name, B.customer_id,
      FROM TABLEB B
     ) B
     ON A.customer_id = B.customer_id;

这个查询实际上是没有意义的,因为你只是从第一个表中选择。但它确实说明了语法。

【讨论】:

    【解决方案2】:

    它有助于整齐地格式化您的代码以提高可读性。

    SELECT A.customer_id, A.package_id 
    FROM TABLEA A 
        OUTER JOIN (SELECT customer_name, customer_id,
                    FROM TABLEB) B ON A.customer_id = B.customer_id
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-27
      • 2015-01-11
      • 2012-05-16
      • 1970-01-01
      • 2021-05-30
      • 2014-03-06
      • 2020-05-21
      • 1970-01-01
      相关资源
      最近更新 更多