DataSource Controls :: Left And Right Outer Join In C# Using Linq?
Apr 20, 2010How to use Left and Right Outer Join in C# using Linq with Eg.
View 2 RepliesHow to use Left and Right Outer Join in C# using Linq with Eg.
View 2 RepliesI'm having trouble doing a left outer join with multiple generic lists tables. I've been researching for hours and there isn't a whole lot out there on this subject and VB (at least what I found).
I have the following Linq query:
Dim DataForGridview = (From s In S1 _
Join c In C1 On c.ID Equals s.ID _
Join v In V1 On v.ID Equals s.ID _
Select New With { _
.dataFieldID = s.ID, _
.dataField1 = s.dataField1, _
.dataField2 = c.dataField2, _
.dataField3 = c.dataField3, _
.dataField4 = c.dataField4, _
.dataField5 = v.dataField5 _
}).ToList()
S1 has a count of 30. V1 has a count of 20. C1 has a count of 10. This query joins the three but ends up with a count of only 10 based on the datakey ID and, of course, only shows those 10 in the gridview.
I would like to show all 30 from S1 in the gridview with blank fields wherever V1 and C1 do not have data. From what I've read I need to do a left outer join. However, all examples I've found are with two datasets.
I've tried multiple times expanding on what I've found by changing it to a group join and also adding the .DefaultIfEmpty() property in the query, but nothing is working.
How can I change the above query to a left outer join with these multiple tables?
I'm trying to achieve an outer join in LINQ but I'm not getting my desired result.There are two relational tables between Fruit_Name and Fruit_Ripe.The Fruit_Ripe table has a boolean field (IsRipe) that I use in my condition.The condition let me show all fruits that is not yet rippen (false) or fruits that isn't inputted yet in Fruit_Ripe table.
Dim fruit_salad = From myFruit In _DataContext.Fruit_Name
Group Join myRipeFruit In _DataContext.Fruit_Ripe On myFruit.fId Equals myRipeFruit.fId Into Group
From fruitty In Group.Where(Function(d) Not d.isRipe =
[code]...
I have 9 tables i need data out of.. 8 of those tables will always just return 1 row of fields that i need. the 9th table can contain many records.. So what i need is a few fields out of each of the 8 tables and then ALL records from the 9th table.. so i know that because there will be multiple records in the 9th table returned, that the fields i pull from the other 8 tables will contain duplicate information and thats fine since i will be displaying the individual records from table 9 on their own page..So everything could be for the same vendor, except for the date in the 9th table that contains specific dates and details about each record returned.When i review the execution plan im getting an yellow exclamation icon on a nested inner join and has this message as the warning: No Join Predicate
Here is what i have, but is returning incorrectly, way to may records, seems to be stuck in a loop.. then below that, i have one that returns the correct number of records, but everything except one column is duplicate, all the TR columns should be unique in the values stored in them.. the rest should all be duplicates, just because its the same vendor, so all the other information will be generic information about that record.
[Code]....
This FROM and WHERE return the correct number of records, but the fields are all duplicated except the last column with is transaction_date, seems that the 3 TR fields are being populated with the first records data or something.. not sure.
[Code]....
i want to delete data from two table using left outer join..
here is my query:
delete from projects p LEFT OUTER JOIN emp_project empp on p.serial_no=empp.projectid where p.serial_no=7
but i am getting error:
Incorrect syntax near 'p'.
I'm trying to build a linq2Entity/gridview function for a forum, that draws data from multible tables.The result should be: Get the latest 10 threads that user(xx) has replyed in, that is not disabled or has a subject that is not allowed.Include information on the last post, thread owner user, and last post user, in each thread.
ere is my code... is returns the correct threads and some that should not be there.
[Code]....
I am trying to put a Right Outer Join on Linq statements. how to put Right Outer Join on Linq.
View 1 Repliesprivate void GetResults()
Use an Expression on a Linq Outer Join
I know I'm missing something here but I can't figure out what it is. I've got a query joining three tables....accounts, payments, and a table linking the two (there is a M:M relationship).I'm trying to pull a list of all accounts in the account table that have a payment that needs to be resequenced, and also the maximum payment priority if there are any payments that haven't been fully paid. If all payments HAVE been fully paid, I want to return a 0.
It's that last bit of logic that I can't get right. If I include that in the where clause, I get only the accounts that have a payment that hasn't been fully paid. If I take it out, I get all the accounts I get, but I get the highest payment priority whether or not the payment has been fully met.
Here is the query....how do I include the where clause criteria but still include all accounts?
select distinct
bat.acct_id,
isnull(max(isnull(crt.pymt_priority, 0)), 0)[code].....
I have the below query which has left join and count in SQL. Please help me convert this SQL query to LINQ (using Entity frameowrk).
[Code]....
how to do this query in EF1:
[Code]....
I have 2 different datatables. 2 datatables from 2 different servers.
My first datatable is this:
SELECT DISTINCT a.name, a.create_date, a.Modify_Date, a.Object_Id
FROM dbname.sys.objects a
and my 2nd datatable is the same, but from a different server connection string
SELECT DISTINCT b.name, b.create_date, b.Modify_Date, b.Object_Id
FROM dbName.sys.objects b
Basically, I want to compare which procedures are on one server and not the other (dev and prod)
So after I have my 2 datatables i want to create a data relationship on the name and then do a left join to see whats in a and not b.
I have the following LINQ query that does a left join:
var results = from v in ctx.dat_Visitor
join sp in ctx.vwSP on v.lu_Mentor.ID equals sp.ID into sp2
select new {
[code]...
My problem is that this LINQ query times out on me. I even upped the default timeout from 15 seconds to 120 seconds and it still times out. dat_Visitor has no more than 10 records in it, but vwSP (which is a view) has somewhere around 100,000 records. I know for sure that the timeout has to do with when I attempt to actually return sp2 in the results. If I change my LINQ query to not return sp2 in the results, then it is quick. Without sp2 the query looks like such:
var results = from v in ctx.dat_Visitor
join sp in ctx.vwSP on v.lu_Mentor.ID equals sp.ID into sp2
select new {
Visitor = v.Name,
Tot = sp2.Count()
};
Lastly, I'm using the 3.5 framework, but I am having serious thoughts about upgrading the website to 4.0, since I could then use DefaultIfEmpty().
I have some text files I need to parse in order to display my data, and what I have now are two text files with lots of redundant data. Instead of this I would like to replace the redundant data with a number referencing the text in another text file.
View 1 Repliesi am trying to use predicatebuilder for a linq to sql query but i cant seem to get a join to another table. in my model, i have a table for applicants and another for job applications.. each applicant can have several job applications.
i expect in linq to sql to be able to do something like;
p.jobapptable.jobappdate where p is the applicant.
this isnt the case..i am trying to use predicatebuilder to search through applicants based on the job applications they have made? how`can i get linq to sql to show the foreign key relationships?
I have two tables namely "CategoryMapping" and "PartnerCategory"...The partnercategory table has foreign key with categorymapping on CategoryID...
let us say categorymapping should be filed first then partnercategory should be filed based on the categories defined in categorymapping. For example my two tables have the following data:
[code]....
To write a join query with or condition. It means a query has two inner join, here it is possible to fetch the records, if one inner join is true and other is false. I got a record when only two join conditions are true.
View 1 RepliesFor context: First of all, I am new to LINQ, as I have been using SubSonic for quite some time now.
I have two tables, Users, and Affiliates. They both have a very typical schema. The FK that joins them is the UserId field, which is in the Affiliates table. I want to create a LINQ query that pulls the Username from the Users table using the AffiliateId value. The AffiliateId is a primary key of the Affiliates table.
I have tried to accomplish this using many variations of the following code:
[Code]....
In the above query, I expect to get a single row result set. However, I instead receive the entire table of results.
How can I make this work? I have yet to see an example or article out there to do what I am trying to do.
I am using Access as my database for an ASP.NET project/Vb.NET. However it seems as though Access does not support Full Outer Joins.
Basically I have two tables in one query used to populate a Gridview. I need to list all available companies and their employee count even if that Company does not have any employees and return the result as 0. Is there anyway I can do this in an Access
query. The relationship layout is the tblCompany has a 1 to Many relationship with the Employee table.
Below is what I would like have happen however access does not seem to recognize FULL OUTER JOINS.
SELECT DISTINCTROW tblCompany.Comp_Name, tblCompany.Comp_CompanyID, tblCompany.Comp_CreatedOn, tblCompany.Comp_Status, Count(*) AS [Employee Count]
FROM tblCompany FULL OUTER JOIN tblEmployee ON tblCompany.Comp_CompanyID = tblEmployee.Comp_CompanyID
GROUP BY tblCompany.Comp_Name, tblCompany.Comp_CompanyID, tblCompany.Comp_CreatedOn, tblCompany.Comp_Status;
I have a gridview showing values from two tables accommodation and pic (left join on accommodation). If there is no pic uploaded I want to display the row without the pic. So in the gridview I first check to see if the picid is null, if it is i don't render any 'a href' code , if it's isn't i do.
The problem that i'm having is that instead of the image showing up in the gridview itemtemplate i get
','_blank','toolbar=no,menubar=no'))" >
Here is my .aspx code
SelectCommand="SELECT pic.picid, aspnet_Users.Username, accommodation.location, accommodation.type,accommodation.description, convert(varchar,accommodation.createdate,101) as createdate
let me know the types of joins available in SQL, so far i've used only Inner joins and left joins.
But have been clear and comfortable using inner joins only.
give me a more clear picture on all the types of joins available and their importance.
I have three tables nameTbl contains the following columns: BarID, Name, Description locTbl contains locID and Location namelocationTbl contains BarID(from the nameTbl) and locID(from the locTbl)
View 2 RepliesI am using sql to create a table from stored procedures and then streamwriter in vb.net to create a text file based on the sql table. Where and how do I control the right or left justification of the records in the text file?
View 1 RepliesThe DoctorGen Table has primary key DocId and Doctors has Keys set on DocId and MemId. I want to get all records from DoctorGen where UserID = @UserId even if there are no matches in the Doctors Table. I'm not getting any records.
[Code]....
I am reading a column value from the database. The field is defined as 30 charswide. If the vale read is less than 30 chars, I need to pad it on the right side withblanks. So that the value when written to a text file will appear to be left justified.How can this be done? I know how to right justify like below. But how do I left justifyand pad on the right side with blanks?Right(LTRIM(RTRIM(CustomerNum) + SPACE(30)),30) As CustNum -- This right justifies.This will NOT left justify so I am stuck :LEFT(SPACE(30) + LTRIM(RTRIM(CustomerNum)),30) As CustNum -- This WIL NOT justify as I wish
View 2 Replies