Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Melakukan Gabungan Luar Kiri dengan Syarat Sertaan Berbilang dalam LINQ ke SQL?

Bagaimanakah Saya Boleh Melakukan Gabungan Luar Kiri dengan Syarat Sertaan Berbilang dalam LINQ ke SQL?

Barbara Streisand
Lepaskan: 2024-12-29 20:02:15
asal
529 orang telah melayarinya

How Can I Perform a Left Outer Join with Multiple Join Conditions in LINQ to SQL?

LINQ kepada SQL: Meningkatkan Cantuman Luar Kiri dengan Syarat Gabungan Berbilang

Dalam LINQ ke SQL, cantuman luar kiri menyediakan mekanisme yang berkuasa untuk menggabungkan data daripada berbilang jadual. Walau bagaimanapun, apabila berhadapan dengan senario yang melibatkan syarat gabungan tambahan, adalah perlu untuk meneroka teknik yang melanjutkan pendekatan standard.

Pertimbangkan pertanyaan SQL:

SELECT f.value
FROM period as p 
LEFT OUTER JOIN facts AS f ON p.id = f.periodid AND f.otherid = 17
WHERE p.companyid = 100
Salin selepas log masuk

Pertanyaan ini bertujuan untuk mendapatkan data daripada jadual 'tempoh' dan 'fakta', menggunakan cantuman luar kiri pada lajur 'id' dan 'periodid'. Selain itu, ia termasuk syarat cantuman selanjutnya, 'f.otherid = 17', untuk menapis keputusan.

Dalam LINQ ke SQL, pelaksanaan tipikal cantuman luar kiri melibatkan penggunaan kaedah 'DefaultIfEmpty()' . Walau bagaimanapun, untuk menampung syarat gabungan tambahan, kami perlu mengubah suai pendekatan kami.

Pertanyaan LINQ berikut mencapai hasil yang diingini:

from p in context.Periods
join f in context.Facts on p.id equals f.periodid into fg
from fgi in fg.Where(f => f.otherid == 17).DefaultIfEmpty()
where p.companyid == 100
select f.value
Salin selepas log masuk

Di sini, kami memperkenalkan syarat gabungan tambahan dalam Klausa '.Where()', memastikan pemilihan baris daripada kumpulan 'fg' ditapis berdasarkan 'f.otherid = 17'.

Secara bergantian, kami boleh menggunakan subkueri:

from p in context.Periods
join f in context.Facts on p.id equals f.periodid into fg
from fgi in (from f in fg
             where f.otherid == 17
             select f).DefaultIfEmpty()
where p.companyid == 100
select f.value
Salin selepas log masuk

Kedua-dua pendekatan berjaya melaksanakan sambung luar kiri sambil menggunakan syarat sambung tambahan, membolehkan pengambilan data yang lebih disasarkan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melakukan Gabungan Luar Kiri dengan Syarat Sertaan Berbilang dalam LINQ ke SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan