你正在尋找被稱爲數據庫中加入什麼T-SQL就像這樣:
SELECT s.*
FROM dbo.Sales AS s
INNER JOIN dbo.Users AS u ON u.UID = s.UID
WHERE u.UID = @YourUserID
沒什麼特別的,沒有神奇的(無交易/隔離級別,這是一個完全不同的話題) ,只是普通的SQL
這可能是相當大的幫助(在此圖之前,我鑽它太深忘記坐在釘在我的牆上幾個月):https://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins
有很多方法可以在應用程序層實現它。通常你將有機會獲得當前登錄的用戶ID的地方,此時您可以使用ADO:
public List<SalesInfo> GetSalesInfo(int userID) {
using (SqlConnection conn = new SqlConnection(_connectionString))
using (SqlCommand cmd = new SqlCommand(conn)) {
cmd.CommandText = "SELECT s.* FROM ..." // insert sql statement here
cmd.Parameters.AddWithValue("@YourUserID", userID);
var adapter = new SqlDataAdapter(cmd);
var table = new DataTable();
conn.Open();
adapter.Fill(table);
conn.Close();
var results = new List<SalesInfo>();
foreach (DataRow row in table.Rows) {
results.Add(new SalesInfo() {
SomeProperty = row['ColumnName'].ToString(),
OtherProperty = int.Parse(row['OtherColumn'])
});
}
return results;
}
}
(注意,有小於在上面的代碼的最佳實踐:僅用於演示目的)
或者你可以建立實體框架,這是很容易,一旦它的配置爲使用:
var salesData = _context.SalesData.Where(x => x.UserID == myUserID).ToList();
所有的一切,還有約1000多種皮膚這隻貓。但從兩個表獲取相關數據是一個簡單的數據庫級連接。在你的應用中消費,就像你會。
難道你不能只是構建你的應用程序不顯示他們從該表中的數據?現在大多數體系結構都不限制數據庫本身,而是通過應用程序限制事物。 – mason