34,588
社区成员
发帖
与我相关
我的任务
分享
SELECT A.id,A.name,B.money,B.isFlag
FROM t1 AS A
LEFT JOIN t2 AS B ON A.id=B.t1id
AND B.isFlag=1
SELECT *
FROM t1 A
LEFT JOIN t2 B
ON A.id=B.t1id AND B.isFlag=1
---------------------------------
-- Author: liangCK 小梁
---------------------------------
--> 生成测试数据: @t1
DECLARE @t1 TABLE (id INT,name VARCHAR(1))
INSERT INTO @t1
SELECT 1,'a' UNION ALL
SELECT 2,'b' UNION ALL
SELECT 3,'c'
--> 生成测试数据: @t2
DECLARE @t2 TABLE (id INT,t1id INT,money INT,isFlag INT)
INSERT INTO @t2
SELECT 1,1,500,0 UNION ALL
SELECT 2,1,300,1 UNION ALL
SELECT 3,2,100,1
--SQL查询如下:
SELECT
A.id,
A.name,
B.money,
B.isFlag
FROM @t1 AS A
LEFT JOIN @t2 AS B
ON A.id=B.t1id
AND B.isFlag=1
/*
id name money isFlag
----------- ---- ----------- -----------
1 a 300 1
2 b 100 1
3 c NULL NULL
(3 行受影响)
*/
select a.*,b.money,b.isflag from t1 a left join t2 b on a.id=b.t1id