我确信这非常简单,但对于我的生活,我找不到一个这样的例子。
我正在对表进行组加入,然后我想对该分组加入进行第二次加入。
表 1 订单 表 2 联系人 表 3 电话号码
dim query = from order in Orders _
Group Join contact in Contacts On order.contactId equals contact.contactId Into grpContacts = Group From gcontact in grpContacts.DefaultIfEmpty()
Group Join phone in PhoneNumbers On phone.phoneNumberId Equals gcontact.homePhoneId Into grpPhoneNumbers = Group from gphone in grpPhoneNumbers.DefaultIfEmpty()
当 gcontact 为空时,此查询将在最后一次连接时出错。这是有道理的......但是如果记录不存在,我怎么做这个加入并且只有空/无值?
更新已解决* 如果其他人遇到此问题,您可以在 ON 运算符之后添加一个表达式以确定之前的组加入是否为空。谢谢摩德!
dim query = from order in Orders _
Group Join contact in Contacts On order.contactId equals contact.contactId Into grpContacts = Group From gcontact in grpContacts.DefaultIfEmpty()
Group Join phone in PhoneNumbers On IF(phone is nothing, 0, phone.phoneNumberId) Equals gcontact.homePhoneId Into grpPhoneNumbers = Group from gphone in grpPhoneNumbers.DefaultIfEmpty()