以下是我设法写的查询:
select *
from [Transaction] as t left join (ProductTransaction as pt right join Product as p on pt.productId = p.productId) on t.transactionId = pt.transactionId
left join (ReservationTransaction as rt right join Reservations as r on rt.reservationId = r.reservationId) on t.transactionId = rt.transactionId
到目前为止,我已经得到了这样的东西(没有嵌套的右连接),而且我被卡住了。任何人都可以帮助我使用这些子查询/嵌套连接吗?
from t in dataContext.Transactions
join pt in dataContext.ProductTransactions on t.transakcja_id equals pt.transactionId into pTransactions
from pt in pTransactions.DefaultIfEmpty()
join rt in dataContext.ReservationTransactions on t.transakcja_id equals rt.transactionId into rTransactions
from rt in rTransactions.DefaultIfEmpty()
编辑: 好的,谢谢你的提示。我想要做的是将〜5个相关的(它们与外键相关联)组合成一个表。案件是我需要所有交易但不是每个交易都与产品或预订相关联。所以我不确定我是否能够使用简单的关联属性获得所有这些属性,并且查询比我或者更多的查询?也许我应该使用多个查询并解决我的问题?
我上传了我正在进行的网络计划截图。提前感谢您的建议。 part of db scheme< - 无法在stackoverflow上传我的低信誉点
答案 0 :(得分:1)
在数据库中设置外键,你不需要连接,你将访问具有关联属性的链接表(只是一个例子):
var transation = dataContact.Transations.First();
var price = transaction.ProductTransaction.Product.Price;