zoukankan      html  css  js  c++  java
  • Linq to sql(四):查询句法(六)

    in操作

     

    描述:查询指定城市中的客户

    查询句法:

            var in操作 = from c in ctx.Customers

                        where new string[] { "Brandenburg", "Cowes", "Stavern" }.Contains(c.City)

                        select c;

    对应SQL

           SELECT [t0].[CustomerID], [t0].[CompanyName], [t0].[ContactName], [t0].[ContactTitle], [t0].[Address], [t0].[City], [t0].[Region], [t0].[PostalCode], [t0].[Country], [t0].[Phone], [t0].[Fax]

    FROM [dbo].[Customers] AS [t0]

    WHERE [t0].[City] IN (@p0, @p1, @p2)

    -- @p0: Input String (Size = 11; Prec = 0; Scale = 0) [Brandenburg]

    -- @p1: Input String (Size = 5; Prec = 0; Scale = 0) [Cowes]

    -- @p2: Input String (Size = 7; Prec = 0; Scale = 0) [Stavern]

     

    join

     

    描述:内连接,没有分类的产品查询不到

    查询句法:

    var innerjoin = from p in ctx.Products

                            join c in ctx.Categories

                            on p.CategoryID equals c.CategoryID

                            select p.ProductName;

    对应SQL

    SELECT COUNT(*) AS [value]

    FROM [dbo].[Products] AS [t0]

    INNER JOIN [dbo].[Categories] AS [t1] ON [t0].[CategoryID] = ([t1].[CategoryID])

     

    描述:外连接,没有分类的产品也能查询到

    查询句法:

    var leftjoin = from p in ctx.Products

                           join c in ctx.Categories

                           on p.CategoryID equals c.CategoryID

                           into pro

                           from x in pro.DefaultIfEmpty()

                           select p.ProductName;

    对应SQL

    SELECT COUNT(*) AS [value]

    FROM [dbo].[Products] AS [t0]

    LEFT OUTER JOIN [dbo].[Categories] AS [t1] ON [t0].[CategoryID] = ([t1].[CategoryID])

     

           你可能会很奇怪,原先很复杂的SQL使用查询句法会很简单(比如按照条件分组)。

    但是原先觉得很好理解的SQL使用查询句法会觉得很复杂(比如连接查询)。其实,

    我们还可以通过其它方式进行连接操作,在以后说DataLoadOptions类型的时候会再说。

    虽然Linq to sql已经非常智能了,但是对于非常复杂的查询还是建议通过存储过程实现,

    下次讲解如何调用存储过程。

  • 相关阅读:
    How Many Tables 并查集(求有几个集合)
    Spell checker 字典树&&普通查找(加计数)
    昂贵的聘礼 dijstra算法(要枚举源点)
    All in All 找子串 水题
    Ultra-QuickSort 求逆序对 归并排序
    Snowflake Snow Snowflakes 根据相似度排序,有点暴力
    Gold Balanced Lineup hash函数,第一次接触,借鉴了大神的博客思想,看了很久才看懂,弱菜啦
    Stockbroker Grapevine 裸的floyd算法,求最大中的最小
    Check the difficulty of problems 概率dp,概率知识很重要
    [leetcode] Valid Anagram 、 Find All Anagrams in a String
  • 原文地址:https://www.cnblogs.com/kevin2013/p/1749087.html
Copyright © 2011-2022 走看看