FROM #pb
INNER JOIN #pc ON #pb.ID = #pc.ID
INNER JOIN #pp ON #pc.ID = #pp.ID
#pc是什么意思!
@水嫩小白菜: 一个表名,你可以替换为你实际要查询的表
多表查询跟麻烦简单没什么关系,再多的表不过是结果集之间的逻辑关系你得弄清楚
常用: inner join 、 left join、 union all
比如两个表 tableA 和tableB 主键都是ID
现在通过他们的主键显示两个表的数据
select * from tableA inner join tableB on tableA.ID=tableB.ID
这样就会显示出两个表中ID相同的数据
笛卡尔积
select * from a,b
inner join
left join
right join
我知道 问题是从三个表分别提取不同的信息 而且他们的主键 不都是ID
select a.*,b.* from Table1 a,Table2 b
select * from tableA inner join tableB on tableA.ID=tableB.ID
WITH x AS ( SELECT Account ,
ROW_NUMBER() OVER ( ORDER BY Account ) rowN
FROM dbo.frmuser
UNION ALL
SELECT DepartName ,
ROW_NUMBER() OVER ( ORDER BY DepartName )
FROM dbo.mdDepartment
), y AS(
SELECT rowN FROM x GROUP BY x.rowN
)
SELECT * FROM y LEFT JOIN x ON y.rowN = x.rowN
select * from Table1 t1
join Table2 t2 on t1.id=t2.id
针对上面内容的解释如下:
Table1,Table2分别是两个表名
t1,t2分别是两个表的另一个名称,方便后面使用而以。
join 是连续起来 on 后面紧跟着 t1.id=t2.id 就是这两个相等的条件。