SORU
31 Mart 2009, Salı


SQL Dış Sol ETMENİZ Katıl

Bu LEFT OUTER katılmak için eşdeğer sorgu.

//assuming that I have a parameter named 'invoiceId' of type int
from c in SupportCases
let invoice = c.Invoices.FirstOrDefault(i=> i.Id == invoiceId)
where (invoiceId == 0 || invoice != null)    
select new 
{
      Id = c.Id
      , InvoiceId = invoice == null ? 0 : invoice.Id
}

CEVAP
31 Mart 2009, Salı


Tam olarak değil - her "" bir-dış-sol birleştirme satır 0-n "sağ"-nereye maçlar sadece 0-1 senin satır (ikinci tablo). maç olacak gittiğinden beri Bir sol dış birleşim yapmak için, örneğin SelectMany DefaultIfEmpty:

var query = from c in db.Customers
            join o in db.Orders
               on c.CustomerID equals o.CustomerID into sr
            from x in sr.DefaultIfEmpty()
            select new {
               CustomerID= c.CustomerID, ContactName=c.ContactName,
               OrderID = x.OrderID == null ? -1 : x.OrderID};   

(or via the extension methods)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DetroitBORG

    DetroitBORG

    29 Temmuz 2008
  • Snazzy Labs

    Snazzy Labs

    9 Aralık 2008
  • Watcher3223

    Watcher3223

    15 Kasım 2007