34,588
社区成员
发帖
与我相关
我的任务
分享
--> 生成测试数据表: [t1]
IF OBJECT_ID('[t1]') IS NOT NULL
DROP TABLE [t1]
GO
CREATE TABLE [t1] ([id] [int],[name] [nvarchar](10))
INSERT INTO [t1]
SELECT '1','a' UNION ALL
SELECT '2','b'
--> 生成测试数据表: [t2]
IF OBJECT_ID('[t2]') IS NOT NULL
DROP TABLE [t2]
GO
CREATE TABLE [t2] ([id] [int],[pid] [int],[count] [int])
INSERT INTO [t2]
SELECT '1','1','10' UNION ALL
SELECT '2','1','15' UNION ALL
SELECT '3','1','20' UNION ALL
SELECT '4','2','10' UNION ALL
SELECT '5','2','15'
--SELECT * FROM [t1]
--SELECT * FROM [t2]
-->SQL查询如下:
--1.
SELECT id,pid,name=(SELECT name FROM t1 WHERE id=t2.pid),[count] FROM t2
/*
id pid name count
----------- ----------- ---------- -----------
1 1 a 10
2 1 a 15
3 1 a 20
4 2 b 10
5 2 b 15
(5 行受影响)
*/
--2.
SELECT a.id,a.pid,b.name,a.[count] FROM t2 a,t1 b WHERE b.id=a.pid
/*
id pid name count
----------- ----------- ---------- -----------
1 1 a 10
2 1 a 15
3 1 a 20
4 2 b 10
5 2 b 15
(5 行受影响)
*/
CREATE TABLE t1(
id decimal (4,0) PRIMARY KEY NOT NULL,
name varchar(5)
)
INSERT t1 VALUES (1,'a')
INSERT t1 VALUES (2,'b')
CREATE TABLE t2(
id decimal (4,0) PRIMARY KEY NOT NULL,
pid decimal (4,0),
[count] decimal(10),
FOREIGN KEY (pid) REFERENCES t1(id)
)
INSERT t2 VALUES (1,1,10)
INSERT t2 VALUES (2,1,15)
INSERT t2 VALUES (3,1,20)
INSERT t2 VALUES (4,2,10)
INSERT t2 VALUES (5,2,15)
SELECT t2.id,t2.pid,t1.name,t2.[count] FROM t2 LEFT JOIN t1 on t1.id = t2.pid
select b.*,a.name
from 表1 a join 表2 b on a.id=b.pid
select a.id,a.pid,b.name,a.count
from t2 a
left join t1 b
on a.pid = b.id