数据库关联问题,请高手来解答。谢谢!

xiaocc520 2012-03-08 04:26:48

有二张相互关联的表
格式如下

第一张表: A
AID DESC setp dn
1 这是A第1个描述 1 null
2 这是A第2个描述 1 null
3 这是A第3个描述 1 123
4 这是A第4个描述 2 null
6 这是A第5个描述 2 null
7 这是A第6个描述 2 234

第二张表: B

BID AID BDesc state
1 4 这是B第1个描述 1
2 6 这是B第2个描述 1
3 7 这是B第3个描述 1
4 2 这是B第4个描述 3
5 1 这是B第5个描述 3
6 3 这是B第6个描述 3

传入三个参数 分别为 setp state dn

事例: 1 3 123
结果:
AID DESC setp dn BDesc

1 这是A第1个描述 1 null 这是B第5个描述
2 这是A第2个描述 1 null 这是B第4个描述
3 这是A第3个描述 1 123 这是B第6个描述


事例: 1 3 234
结果:
AID DESC setp dn BDesc

1 这是A第1个描述 1 null 这是B第5个描述
2 这是A第2个描述 1 null 这是B第4个描述


在线等高手来解答 谢谢了!



...全文
122 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

GO
IF OBJECT_ID('P_SP') IS NOT NULL
DROP PROC P_SP
GO
CREATE PROC
P_SP @setp INT,@state INT,@dn INT
AS
CREATE TABLE #T(
AID INT,
[DESC] VARCHAR(100),
setp INT,
dn INT,
BDesc VARCHAR(100),
[state] INT
)
INSERT #T
SELECT A.AID,A.[DESC],A.setp,A.dn,B.BDesc,B.[state] FROM [A1] A
LEFT JOIN [ B] B
ON A.AID=B.AID
SELECT AID,[DESC],setp,dn,BDesc FROM #T
WHERE setp=@setp AND [state]=@state AND DN=@dn
dawugui 2012-03-08
  • 打赏
  • 举报
回复
select a.* , b.BDesc from a , b where a.setp = 1 and a.dn = 123 and b.state = 1
老猫五号 2012-03-08
  • 打赏
  • 举报
回复
select A.*,B.BDesc
from A inner join B
on B.AID = A.AID
where A.setp = 1 and B.State = 3 and (A.dn = 234 or A.dn is null)
  • 打赏
  • 举报
回复
写一个试试

27,581

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧