首页 > 解决方案 > 用 SQL 连接 2 个表

问题描述

我有一个CustomerCustomer_2表,我想把它连接在一起:

两个表中都有数据,但在加入语句后,只返回列名而不返回数据。我正在尝试使用以下联接语句:

select distinct * 
from Customer c 
join Customer_2 d on c.CUST_NUM = d.CUST_NUM  

这些是表格:

CREATE TABLE [Customer] 
(
    [CUST_NUM] [INT] NOT NULL,
    [CUST_LNAME] [VARCHAR](50) NULL,
    [CUST_FNAME] [VARCHAR](50) NULL,
    CUST_BALANCE [MONEY] NOT NULL, 
) ON [PRIMARY]

CREATE TABLE [Customer_2]  
(
    [CUST_NUM] [INT] NOT NULL,
    [CUST_LNAME] [VARCHAR](50) NULL,
    [CUST_FNAME] [VARCHAR](50) NULL, 
) ON [PRIMARY]

每个表中的数据:

INSERT INTO Customer 
VALUES ('1000', 'Smith', 'Jeanne', '1050.11'),
       ('1001', 'Ortega', 'Juan', '840.92');

INSERT INTO CUSTOMER_2 
VALUES ('2000', 'McPherson', 'Anne'),
       ('2001', 'Ortega', 'Juan'),
       ('2002', 'Kowalski', 'Jan'),
       ('2003', 'Chan', 'George');

预期的输出会将 customer_2 组合到 customer 表的底部,对于CUST_BALANCEcustomer 2 表上的四个客户中的每一个,额外的列都是 0 或 null。

标签: sql-serverssms

解决方案


我猜发生的事情是您的连接条件从未满足,这意味着两个表都没有cust_name像下面的左连接那样尝试调试

   select distinct * 
   from Customer c 
   Left join Customer_2 d on 
   c.CUST_NUM =
   d.CUST_NUM

推荐阅读