strSQL = "SELECT     dbo.inv_stock.HSGD_tag, dbo.inv_stock.center_name, inv_product_1.product_id, inv_product_1.condition_id, inv_product_1.status_id, " & _
               "    inv_product_1.cost, dbo.ref_inv_product_condition.condition_name, dbo.ref_inv_product_status.status, dbo.ref_inv_product_sub_category.sub_name, " & _
               "    dbo.ref_inv_product_description.description, dbo.inv_vendor_warranty.date_end AS vendor_date, dbo.inv_manu_warranty.date_end AS manu_date, " & _
               "    dbo.inv_purchase_history.date_delivered, inv_product_1.part_number, inv_product_1.sub_id, inv_product_1.serial_number, " & _
               "    dbo.ref_inv_product_category.category_name, inv_product_1.manu_id, dbo.inv_manufacturer.manu_name, dbo.inv_vendor.vendor_name, " & _
               "    dbo.inv_purchase_history.purchase_id, dbo.inv_purchase_history.purchase_order, dbo.inv_vendor_warranty.vendor_id, dbo.inv_stock.equipment_id, " & _
               "    inv_product_1.model " & _
               "FROM         dbo.inv_vendor INNER JOIN" & _
               "    dbo.inv_purchase_history ON dbo.inv_vendor.vendor_id = dbo.inv_purchase_history.vendor_id RIGHT OUTER JOIN" & _
               "    (SELECT * FROM dbo.inv_product " & productCondition & " ) AS inv_product_1 INNER JOIN" & _
               "    dbo.inv_stock ON inv_stock.disposed = 0 AND " & stockCondition & " inv_product_1.product_id = dbo.inv_stock.product_id INNER JOIN" & _
               "    dbo.ref_inv_product_category ON inv_product_1.category_id = dbo.ref_inv_product_category.category_id INNER JOIN" & _
               "    dbo.ref_inv_product_condition ON inv_product_1.condition_id = dbo.ref_inv_product_condition.condition_id INNER JOIN" & _
               "    dbo.ref_inv_product_status ON inv_product_1.status_id = dbo.ref_inv_product_status.status_id INNER JOIN" & _
               "    dbo.ref_inv_product_sub_category ON inv_product_1.sub_id = dbo.ref_inv_product_sub_category.sub_id AND " & _
               "    dbo.ref_inv_product_category.category_id = dbo.ref_inv_product_sub_category.category_id INNER JOIN" & _
               "    dbo.inv_manufacturer ON inv_product_1.manu_id = dbo.inv_manufacturer.manu_id LEFT OUTER JOIN" & _
               "    dbo.inv_manu_warranty ON inv_product_1.product_id = dbo.inv_manu_warranty.product_id LEFT OUTER JOIN" & _
               "    dbo.ref_inv_product_description ON inv_product_1.part_number = dbo.ref_inv_product_description.part_number AND " & _
               "    inv_product_1.manu_id = dbo.ref_inv_product_description.manu_id ON " & _
               "    dbo.inv_purchase_history.purchase_id = inv_product_1.purchase_id LEFT OUTER JOIN" & _
               "    dbo.inv_vendor_warranty ON inv_product_1.product_id = dbo.inv_vendor_warranty.product_id"
如题所示,求这个linq查询语句的写法,刚刚接触,非常感谢

解决方案 »

  1.   

    能不能给我解释下linq中 INNER JOIN 这些关键字怎么用的 谢谢 最好举个例子
      

  2.   

    这 这 这 好歹放在插入源代码块里吧。 strSQL = "SELECT dbo.inv_stock.HSGD_tag, dbo.inv_stock.center_name, inv_product_1.product_id, inv_product_1.condition_id, inv_product_1.status_id, " & _
      " inv_product_1.cost, dbo.ref_inv_product_condition.condition_name, dbo.ref_inv_product_status.status, dbo.ref_inv_product_sub_category.sub_name, " & _
      " dbo.ref_inv_product_description.description, dbo.inv_vendor_warranty.date_end AS vendor_date, dbo.inv_manu_warranty.date_end AS manu_date, " & _
      " dbo.inv_purchase_history.date_delivered, inv_product_1.part_number, inv_product_1.sub_id, inv_product_1.serial_number, " & _
      " dbo.ref_inv_product_category.category_name, inv_product_1.manu_id, dbo.inv_manufacturer.manu_name, dbo.inv_vendor.vendor_name, " & _
      " dbo.inv_purchase_history.purchase_id, dbo.inv_purchase_history.purchase_order, dbo.inv_vendor_warranty.vendor_id, dbo.inv_stock.equipment_id, " & _
      " inv_product_1.model " & _
      "FROM dbo.inv_vendor INNER JOIN" & _
      " dbo.inv_purchase_history ON dbo.inv_vendor.vendor_id = dbo.inv_purchase_history.vendor_id RIGHT OUTER JOIN" & _
      " (SELECT * FROM dbo.inv_product " & productCondition & " ) AS inv_product_1 INNER JOIN" & _
      " dbo.inv_stock ON inv_stock.disposed = 0 AND " & stockCondition & " inv_product_1.product_id = dbo.inv_stock.product_id INNER JOIN" & _
      " dbo.ref_inv_product_category ON inv_product_1.category_id = dbo.ref_inv_product_category.category_id INNER JOIN" & _
      " dbo.ref_inv_product_condition ON inv_product_1.condition_id = dbo.ref_inv_product_condition.condition_id INNER JOIN" & _
      " dbo.ref_inv_product_status ON inv_product_1.status_id = dbo.ref_inv_product_status.status_id INNER JOIN" & _
      " dbo.ref_inv_product_sub_category ON inv_product_1.sub_id = dbo.ref_inv_product_sub_category.sub_id AND " & _
      " dbo.ref_inv_product_category.category_id = dbo.ref_inv_product_sub_category.category_id INNER JOIN" & _
      " dbo.inv_manufacturer ON inv_product_1.manu_id = dbo.inv_manufacturer.manu_id LEFT OUTER JOIN" & _
      " dbo.inv_manu_warranty ON inv_product_1.product_id = dbo.inv_manu_warranty.product_id LEFT OUTER JOIN" & _
      " dbo.ref_inv_product_description ON inv_product_1.part_number = dbo.ref_inv_product_description.part_number AND " & _
      " inv_product_1.manu_id = dbo.ref_inv_product_description.manu_id ON " & _
      " dbo.inv_purchase_history.purchase_id = inv_product_1.purchase_id LEFT OUTER JOIN" & _
      " dbo.inv_vendor_warranty ON inv_product_1.product_id = dbo.inv_vendor_warranty.product_id"
      

  3.   

    Linq to Object
    比如:Parent p1 = new Parent() { ID = 1, ParentName = "父亲1", ParentTime = "2012-08-01" };
    Parent p2 = new Parent() { ID = 2, ParentName = "父亲2", ParentTime = "2012-08-02" };
    Parent p3 = new Parent() { ID = 3, ParentName = "父亲3", ParentTime = "2012-08-03" };
    Parent p4 = new Parent() { ID = 4, ParentName = "父亲4", ParentTime = "2012-08-04" };
    Parent p5 = new Parent() { ID = 5, ParentName = "父亲5", ParentTime = "2012-08-05" };Child c1 = new Child() { ChildID = 1, ChildName="儿子1", ChildTime = "2012-08-01", ParentID=1 };
    Child c2 = new Child() { ChildID = 2, ChildName = "儿子2", ChildTime = "2012-08-01", ParentID = 2 };
    Child c3 = new Child() { ChildID = 3, ChildName = "儿子3", ChildTime = "2012-08-01", ParentID = 2 };
    Child c4 = new Child() { ChildID = 4, ChildName = "儿子4", ChildTime = "2012-08-01", ParentID = 1 };
    Child c5 = new Child() { ChildID = 5, ChildName = "儿子5", ChildTime = "2012-08-01", ParentID = 4 };IList<Parent> parents = new List<Parent>() { p1,p2,p3,p4,p5 };
    IList<Child> childs = new List<Child>() { c1,c2,c3,c4,c5 };var manyQuery = from p in parents join o in childs on p.ID equals o.ParentID select new { ID=p.ID,ParentName=p.ParentName,ChildID=o.ChildID,ChildName=o.ChildName,ParentID=o.ParentID};
    foreach (var mitem in manyQuery.ToList())
    {
       Console.WriteLine(mitem.ID + "-->" + mitem.ParentName+"-->"+mitem.ChildID+"-->"+mitem.ChildName);
    }
      

  4.   

    var qu = from a in A
      join b in B
      where a.ID equals b.ID
      select a;
      

  5.   

    var qu = from a in A
      join b in B
      on a.ID equals b.ID
      select new{a,b};
    形式是这样
      

  6.   

    嗯 谢谢 理解了 但是希望能够帮我上面代码的一小部分作为实例吗? 因为我对sql server 也没有学习过!