带有来自其他表的联接的 SQL Server 查询

时间:2021-07-27 18:45:19

标签: sql sql-server tsql join

我有两张桌子:

cicmpy 带列:

ID  ItemCode    Description SecurityLevel   Type    debcode

和带有列的表 AAA2

KLIENCIID

我需要带有来自 KLIID 的数据 (ID) 的 select * from cicmpy

我试过这个选择语句:

SELECT * 
FROM dbo.cicmpy 
WHERE debcode IN (SELECT KLIENCIID FROM AAA2)

示例:

SELECT * 
FROM dbo.AAA2 
<头>
KLIENCIID
300000
300001
300002
SELECT *
FROM dbo.cicmpy 
WHERE dbo.cicmpy.debcode = 300000;
<头>
ID 项目代码 debcode
46 ED8D7F34-88A6-439B-85FC-AC9B1461E547 300000

1 个答案:

答案 0 :(得分:0)

架构和插入语句:

CREATE TABLE dbo.AAA2 (KLIENCIID varchar(10));

INSERT INTO dbo.AAA2 VALUES(300000);
INSERT INTO dbo.AAA2 VALUES(300001);
INSERT INTO dbo.AAA2 VALUES(300002);
 
CREATE TABLE dbo.cicmpy 
(
     ID int, 
     ItemCode varchar(200), 
     debcode varchar(10)
);

INSERT INTO dbo.cicmpy 
VALUES (46, 'ED8D7F34-88A6-439B-85FC-AC9B1461E547', 300000);

选择查询:

SELECT c.* 
FROM dbo.cicmpy c 
INNER JOIN AAA2 a ON LTRIM(RTRIM(c.debcode)) = LTRIM(RTRIM(a.KLIENCIID)) 

输出:

<头>
ID ItemCode debcode
46 ED8D7F34-88A6-439B-85FC-AC9B1461E547 300000

db<>fiddle here

相关问题