2016-10-14 1 views
1

Ich versuche, SQL zu lernen, ich versuche 1 Daten aus der Tabelle zu drucken, indem Innen-Join-Konzepte in SQL, aber ich `tWie verwendet man innere Join in SQL und Druckdaten?

meine Tabelle 1 Name ist„Assets“ und meine Tabelle 2 Name ist" AssignAssigneeMapper "

Meine Datenbank Name ist mydatabase Erste Tabellenspalten sind (Assets)

assetId int (Identity), 
    assetName varChar(100), 
    modelNo varChar(100), 
    price decimal, 
    quantity int. 

Meine zweite Tabellenspalten (AssetAssigneeMapper)

assignId int (Identity), 
assetId int(Foreign Key), 
assignedQty int, 
employeeName varChar(100). 

Ich versuche zu verwenden innerjoin und drucken Sie den Spaltenwert

mein Code unter

using (var database = new MyDataBaseEntities()) 
       { 
        var x = from p in database.Assets 
          join q in database.AssetAssigneeMappers 
          on p.assetId equals q.assetId 
          select new 
          { 
           p.assetName, 
           p.modelNo, 
           p.price, 
           p.AssetAssigneeMappers 
          }; 

        Console.WriteLine("Asset Name\tModel\tPrice\tAssigned Qty\tEmployee Name"); 
        foreach (var z in x) 
        { 

          Console.WriteLine(" {0}\t{1}\t{2}\t{3}\t{4}",z.assetName,z.modelNo,z.price,z.assignQty,z.employeeName); 

        } 

       } 

Ich habe Assetname, ModelNo, Preiswert korrekt aber aaignQty und Employee Name machen Ärger.

ich weiß nicht, wie man es nennen in foreach-Schleife

jemand mir helfen, wie auch zu drucken, dass assignQty und employeeName.

+1

wählen Teil der Felder haben sollten, wenn Sie müssen in Liste. Derzeit bezieht es sich nur p Tabellenspalten –

Antwort

0

Sie die folgenden Änderungen an den aktuellen Code:

Ändern Registriert

Veränderung ist Sie AssetAssigneeMapper Objekt in der Join

var x = from p in database.Assets 
          join q in database.AssetAssigneeMappers 
          on p.assetId equals q.assetId 
          select new 
          { 
           p.assetName, 
           p.modelNo, 
           p.price, 
           q 
          }; 

Ändern Console.Writeline herzutragen wie folgt:

Drucken Sie mit der AssetAssigneeMapper Objekt in der Writeline Methode

Console.WriteLine(" {0}\t{1}\t{2}\t{3}\t{4}",z.assetName,z.modelNo,z.price,z.q.assignQty,z.q.employeeName); 

Alternative Lösung wäre die q.assignQty und q.employeeName in der Select-Anweisung holen selbst, dann die ursprüngliche Console.Writeline funktionieren würde, wie erwartet

+0

danke @Mrinal kamboj –

+0

@Arunkumar froh, zu helfen, bitte up-vote, markieren Sie die Antwort, wenn es geholfen hat –