Sql server 内部连接两个组合列的值

Sql server 内部连接两个组合列的值,sql-server,tsql,Sql Server,Tsql,我需要在两个组合柱上进行内部连接 SELECT [FullName], [Email], [Phone], [Goal], [TimeOfLead], [Location], [IPAddress] FROM [Leads] INNER JOIN Clinics on [Clinics.City] + ', ' + [Clinics.State] as Location = Leads.Location WHERE Leads.Location = Cl

我需要在两个组合柱上进行内部连接

SELECT 
    [FullName], [Email], [Phone], [Goal], [TimeOfLead], [Location], [IPAddress] 
FROM 
    [Leads] 
INNER JOIN
    Clinics on [Clinics.City] + ', ' + [Clinics.State] as Location = Leads.Location 
WHERE
    Leads.Location = Clinics.Location
线索
位置
将始终与
诊所
表中的
城市
相同


如果我解释得不够好,请让我知道,我会修改这个问题。

这样就可以了。您不需要再次使用
WHERE
子句,因为您是在
内部联接
本身中建立连接的

SELECT DISTINCT
    L.[FullName], L.[Email], L.[Phone], L.[Goal], L.[TimeOfLead], L.[Location], L.[IPAddress] 
FROM 
    [Leads] L
INNER JOIN
    Clinics C on L.Location = C.City + ', ' + C.State
下面是一个SQL,其中包含一些示例数据和工作查询

创建表格,填充样本数据

CREATE TABLE Leads
( 
  FullName NVARCHAR(50) NULL,
  Email NVARCHAR(50) NOT NULL, 
  Phone NVARCHAR(20) NULL, 
  Goal NVARCHAR(50) NULL, 
  TimeOfLead NVARCHAR(50) NULL,
  Location NVARCHAR(50) NOT NULL, 
  IPAddress NVARCHAR(50) NULL  
);

CREATE TABLE Clinics
(
  ClinicName NVARCHAR(40) NOT NULL,
  City NVARCHAR(40) NOT NULL,
  State NVARCHAR(2) NOT NULL,
);

INSERT INTO Leads (FullName, Email, Location) VALUES
('John Duh', 'john@duh.com', 'San Francisco, CA'),
('Jane Dough', 'jane@dough.com', 'Austin, TX'),
('Bill Clinton', 'billy@presidents.com', 'Hope, AK');

INSERT INTO Clinics VALUES
('San Fran Clinic','San Francisco','CA'),
('Austin Clinic','Austin','TX'),
('Boise Clinic','Boise','ID'),
('Hope Clinic','Hope','AK');
执行查询

SELECT DISTINCT 
    L.[FullName], L.[Email], L.[Phone], L.[Goal], L.[TimeOfLead], L.[Location], L.[IPAddress] 
FROM 
    [Leads] L
INNER JOIN
    Clinics C on L.Location = C.City + ', ' + C.State
结果

FULLNAME    EMAIL   PHONE   GOAL    TIMEOFLEAD  LOCATION    IPADDRESS
John Duh    john@duh.com    (null)  (null)  (null)  San Francisco, CA   (null)
Jane Dough  jane@dough.com  (null)  (null)  (null)  Austin, TX  (null)
Bill Clinton    billy@presidents.com    (null)  (null)  (null)  Hope, AK    (null)

这可能是因为每个潜在客户或诊所都有不止一个记录。使用“选择不同的”来获得唯一的记录。@Jim是对的。已更新查询和示例代码以使用
DISTINCT