【问题标题】:SQL - GROUPING, ID, NAMESQL - 分组、ID、名称
【发布时间】:2012-03-27 19:10:22
【问题描述】:

我想知道 1c 的答案应该是什么。在这个网站上:

http://sqlzoo.net/6.htm

SELECT company 
FROM route WHERE stop=4
GROUP BY name, ID

这显然不起作用,无论如何都不会显示 ID 和名称。这里缺少什么?谢谢。

【问题讨论】:

    标签: sql


    【解决方案1】:
    SELECT stops.id, stops.name
    FROM route 
    INNER JOIN stops on route.stop = stops.id
    WHERE route.num = 4 AND route.company = 'LRT'
    

    您需要连接表格,因为您要返回的数据与过滤数据的表格不同。

    【讨论】:

      【解决方案2】:

      这可行,并且不包括任何不必要的表连接。一个好的经验法则是使用EXISTS 来验证表中不需要输出的值。否则,您将使用JOIN

      SELECT stops.id, stops.name
      FROM stops
      WHERE EXISTS
      (
          SELECT 1 FROM route 
          WHERE route.stop = stops.id AND num = '4' AND company = 'LRT'
      )
      

      【讨论】:

      【解决方案3】:
      select s.id, s.name
      from stops s
      inner join route r
          on s.id = r.stop
      where r.num= 4
          AND r.company= 'LRT'
      

      【讨论】:

        【解决方案4】:

        它给你这个错误:

        sql:“组语句”中的未知列“名称”

        route 表中没有name。 表结构为:

        stops(id, name)
        route(num,company,pos, stop)
        

        所以这个测验的答案是:

        SELECT s.id, s.name
        FROM   route r, stops s 
        WHERE  r.stop= s.id 
        and    r.num = 4 AND r.company = 'LRT'
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-03-12
          • 2014-01-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-09-06
          • 2021-01-21
          相关资源
          最近更新 更多