這應該這樣做。您不需要再次使用WHERE
子句,因爲您在INNER JOIN
本身中進行連接。
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小提琴與一些示例數據和工作查詢。 http://sqlfiddle.com/#!3/f53eb/2
創建表,填寫示例數據
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', '[email protected]', 'San Francisco, CA'),
('Jane Dough', '[email protected]', 'Austin, TX'),
('Bill Clinton', '[email protected]', '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 [email protected] (null) (null) (null) San Francisco, CA (null)
Jane Dough [email protected] (null) (null) (null) Austin, TX (null)
Bill Clinton [email protected] (null) (null) (null) Hope, AK (null)
,工程很大,但它顯示的每一行兩次 – prospector
這可能是因爲有對每個鉛或診所的多個記錄。使用「SELECT DISTINCT」獲取唯一記錄。 – Jim
@Jim是對的。更新了查詢和示例代碼以使用「DISTINCT」。 – Shiva