通过复杂麻烦的查询以后
我得到了
ID value1 value2
1 v11 v12
2 v21 v22
3 v31 v32再通过另外一个查询得到
ID value1 value2
2 v211 v222
如何得到
ID value1 value2 value1 value2
1 v11 v12
2 v21 v22 v211 v222
3 v31 v32谢谢
我得到了
ID value1 value2
1 v11 v12
2 v21 v22
3 v31 v32再通过另外一个查询得到
ID value1 value2
2 v211 v222
如何得到
ID value1 value2 value1 value2
1 v11 v12
2 v21 v22 v211 v222
3 v31 v32谢谢
select tb1.id,tb1.value1,tb1.value2,tb2.value1,tb2.value2
from tb1 left join tb2 on
tb1.id=tb2.id
/*------------------------------------------------------------------
-- Author : htl258(Tony)
-- Date : 2010-04-12 16:25:51
-- Version: Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86)
Jul 9 2008 14:43:34
Copyright (c) 1988-2008 Microsoft Corporation
Developer Edition on Windows NT 5.1 <X86> (Build 2600: Service Pack 3)------------------------------------------------------------------*/
--> 生成测试数据表:tbIF OBJECT_ID('[tb]') IS NOT NULL
DROP TABLE [tb]
GO
CREATE TABLE [tb]([ID] INT,[value1] NVARCHAR(10),[value2] NVARCHAR(10))
INSERT [tb]
SELECT 1,'v11','v12' UNION ALL
SELECT 2,'v21','v22' UNION ALL
SELECT 3,'v31','v32'
GO
--SELECT * FROM [tb]--> 生成测试数据表:taIF OBJECT_ID('[ta]') IS NOT NULL
DROP TABLE [ta]
GO
CREATE TABLE [ta]([ID] INT,[value1] NVARCHAR(10),[value2] NVARCHAR(10))
INSERT [ta]
SELECT 2,'v211','v222'
GO
--SELECT * FROM [ta]-->SQL查询如下:
select A.*,b.value1,b.value2
from tb a
left join ta b
on a.ID=b.ID
/*
ID value1 value2 value1 value2
----------- ---------- ---------- ---------- ----------
1 v11 v12 NULL NULL
2 v21 v22 v211 v222
3 v31 v32 NULL NULL(3 行受影响)
*/
(
通过复杂麻烦的查询以后
ID value1 value2
1 v11 v12
2 v21 v22
3 v31 v32
) m
left join
(
再通过另外一个查询得到
ID value1 value2
2 v211 v222
) n
on m.id = n.id --on m.id = n.id and m.value1 = n.value1
select
a.ID, a.value1, a.value2, [value1] = isnull(b.value1,''), [value2] = isnull(b.value2,'')
from
(
一个复杂麻烦的查询
) a
left join
(
通过另外一个查询
) b
on a.ID = b.ID