Stored-Procedures
3表內連接
我有 3 個表:tblUser、tblRole、tblPage。
以下是表格中的數據:
tbl使用者
userID: 1 (Primary Key)
userName: Bob
roleID: 1 (Foreign Key)
tbl角色
角色ID:1 (主鍵)
角色名稱:管理員
頁面ID:1 (外鍵)
頁面
pageID: 1 (Primary Key)
pageName: AdminPage
pageURL: https://AdminPage …
我想知道一個場景的儲存過程……
當我輸入名字“Bob”時,我應該得到pageURL“ https://AdminPage …”
謝謝你。
您的問題沒有指定特定的 RDBMS(Oracle、SQL Server 等),但這是使用 SQL Server 的解決方案
--demo setup drop table if exists #tblUser create table #tblUser ( userID int ,userName varchar(30) ,roleID int ) drop table if exists #tblRole create table #tblRole ( roleID int ,roleName varchar(30) ,pageID int ) drop table if exists #tblPage create table #tblPage ( pageID int ,pageName varchar(30) ,pageURL varchar(100) ) insert into #tblUser(userID, userName, roleID) values(1,'Bob',1) insert into #tblRole(roleID, roleName, pageID) values(1,'Admin',1) insert into #tblPage(pageID, pageName, pageURL) values(1,'AdminPage',' https://AdminPage') go ---------------- --create the stored procedure USE [Test] GO drop PROCEDURE if exists [dbo].[GetPageUrl] ; go create PROCEDURE [dbo].[GetPageUrl] @UserName varchar(30) AS BEGIN SELECT p.pageURL FROM #tblUser u JOIN #tblRole r ON r.roleID = u.roleID JOIN #tblPage p ON p.pageID = r.pageID where u.userName = @UserName END go --Test the stored procedure exec dbo.GetPageUrl @userName = 'Bob'
| pageURL | | |---------|-------------| | https | //AdminPage |