如何在資料庫中,通過兩表連接配接多條資料?
該方法适用于WPF項目的資料庫存儲過程編寫,而且是作用于查詢方法。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiIXZ05WZj91YpB3IwczX0xiRGZkRGZ0Xy9GbvNGL2EzXlpXazxSP9EUTzMGRPBTVE5EM4wmYwhGWhxGZzwEMW1mY1RzRapnTtxkb5ckYplTeMZTTINGMShUYfRHelRHLwEzX39GZhh2css2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xyayFWbyVGdhd3LcV2Zh1Wa9M3clN2byBXLzN3btg3Pn5GcuEDO1QTOwATM5ITOwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
SELECT ROW_NUMBER () over(order by B_ModuleFunction.ModuleFunctionID) as number,
B_ModuleFunction.ModuleFunctionID,
RTRIM(B_Module.ModuleName) AS ModuleName,
RTRIM(B_Module.ModuleCode) AS ModuleCode,
B_Module.f_id,
RTRIM(B_ModuleFunction.Detailed_attribute_gatherID) AS Detailed_attribute_gatherID,
'False' AS SelectID,
'False' AS InsertID,
'False' AS UpdateID,
'False' AS DeleteID
FROM B_Module INNER JOIN
B_ModuleFunction ON B_Module.ModuleID = B_ModuleFunction.ModuleID
--在Sql中将 varchar 值 '1,2,3,4,5,6' 轉換成資料類型 int
--charindex(比對内容,檢測字元串),比對不到資料傳回0
WHERE charindex(','+rtrim(B_ModuleFunction.ModuleFunctionID)+',',','[email protected]+',')>0
這裡用到的兩張資料表分别是B_Powers和B_ModuleFunction,這裡的B_Power.ModuleFunctionID連接配接了B_Powers表中的多條id,如果是普通的連表,是通過id連接配接且隻能連接配接一條id,而這裡連接配接了多條,B_Powers表中的ModuleFunctionID其實在char類型,但通過charindex方法可以實作不同類型的資料查找。
總結:首先是使用這種查詢方法需要注意的地方,存放多條id的ModuleFunctionID中結尾要用“,”隔開,不然執行操作的時候會出錯。最後要注意int類型的資料不能和char類型資料連接配接,以上條件滿足後就可通過charindex方法查詢資料。
PS:以上均為個人了解,可能存在錯誤或遺漏,歡迎各位指正。