我有两个表,我应该编写一个连接这两个表的select查询,但我不知道这两个表之间的条件连接是什么?
有些人可以说是什么吗?
TABLE ParameterRegistration
(
RegistrationTime DATETIME,
PatiNo VARCHAR(12),
Source VARCHAR(64),
Code VARCHAR(64),
NameOfCodingSystem VARCHAR(64) NULL,
Name VARCHAR(64),
ValueType CHAR(2) NULL,
NumericValue INT NULL,
StringValue VARCHAR(64) NULL,
TextValue TEXT NULL,
Unit VARCHAR(64) NULL,
UnitCode VARCHAR(64) NULL,
UnitCodingSystem VARCHAR(64) NULL,
Remark VARCHAR(255) NULL,
CreateDate DATETIME,
CreateUserId T_USER_ID
)
和
TABLE External
(
ModDate DATETIME,
ModUserId VARCHAR(12),
UbMem VARCHAR(64),
Code VARCHAR(64),
Name VARCHAR(64),
Service VARCHAR(64),
NameOfCodingSystem VARCHAR(64) NULL,
)
答案 0 :(得分:3)
如果他们有某种关系,你只能正确地加入这两个表。
检查THIS ARTICLE以获取一些信息。
假设在您的情况下,表与Code,NameOfCodingSystem和Name列相关,您可以像这样进行连接:
select p.*, e.* from ParameterRegistration p
inner join External e on p.Code = e.Code and
p.NameOfCodingSystem = e.NameOfCodingSystem and
p.Name = e.Name
答案 1 :(得分:2)
连接表时,您必须加入相关的字段。由于您没有提供大量信息,因此您看起来有3个可能可以加入的字段。
因此,您可以在技术上以下列方式之一编写查询:
SELECT *
FROM ParameterRegistration P
INNER JOIN External E -- or LEFT JOIN, etc
ON P.NameOfCodingSystem = E.NameOfCodingSystem
OR
SELECT *
FROM ParameterRegistration P
INNER JOIN External E -- or LEFT JOIN, etc
ON P.Name = E.Name
OR
SELECT *
FROM ParameterRegistration P
INNER JOIN External E -- or LEFT JOIN, etc
ON P.Code = E.Code
或者您可以同时加入所有字段
SELECT *
FROM ParameterRegistration P
INNER JOIN External E -- or LEFT JOIN, etc
ON P.NameOfCodingSystem = E.NameOfCodingSystem AND
P.Name = E.Name AND
P.Code = E.Code
我的建议是研究JOINs
。以下是一些资源,但互联网上有很多资源: