比较SQL

时间:2018-02-25 02:31:27

标签: mysql sql

SQL查询中的表

  1. 喜欢(cname,披萨)

  2. 客户(cname,area)

  3. 餐馆(rname,area)

  4. 出售(rname,披萨,价格)

  5. 请参阅:http://sqlfiddle.com/#!9/06ade3/6(包含代码和数据库架构)

    预期结果

    | rname | 
    ---------
    |   D   |  
    |   L   |  
    

    - >输出所有餐馆R的列表,使得不存在比R更多样化的任何餐馆R2。)

    如果出现以下情况,餐厅会更加多样化:

    1. R1的priceRange> = R2的priceRange和R1的numPizza> R2的numPizza

      OR

      R1的priceRange> priceRange of R2 AND numPizza of R1> = numPizza of R2

    2. 如果餐厅没有出售任何披萨,numPizza = 0且priceRange = 0

    3. ** priceRange指餐厅的最大分钟数。

      ** numPizza指的是餐厅的比萨饼总数

      我的SQL代码:

      SELECT r1.rname
      FROM restaurants r1
      INNER JOIN restaurants r2 ON r1.rname < r2.rname
      WHERE (SELECT (MAX(s1.price)-MIN(s1.price) AS s1.pricerange)
         FROM sells s1
         INNER JOIN sells s2 ON s1.rname < s2.rname)
         WHERE s1.pricerange > MAX(s1.price)-MIN(s1.price) AS s2.pricerange
         AND COUNT(s1.pizza) >= COUNT(s2.pizza)
         )
      
      OR (SELECT (MAX(s1.price)-MIN(s1.price) AS s1.pricerange)
         FROM sells s1
         INNER JOIN sells s2 ON s1.rname < s2.rname)
         WHERE s1.pricerange >= MAX(s1.price)-MIN(s1.price) AS s2.pricerange
         AND COUNT(s1.pizza) > COUNT(s2.pizza)
         )
      

      我实施它的方式似乎是错误的。我的代码的最后一部分与第二部分非常相似。除了不平等的迹象。有一个更好的方法吗?

0 个答案:

没有答案