SQL - GROUPING,ID,NAME

时间:2012-03-27 19:10:22

标签: sql

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

http://sqlzoo.net/6.htm

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

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

4 个答案:

答案 0 :(得分:3)

SELECT stops.id, stops.name
FROM route 
INNER JOIN stops on route.stop = stops.id
WHERE route.num = 4 AND route.company = 'LRT'

您需要加入表格,因为您要返回的数据位于与过滤数据的表格不同的表格中。

答案 1 :(得分:1)

这有效,不包含任何不必要的表连接。一个好的经验法则是使用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'
)

答案 2 :(得分:0)

它给你这个错误:

  

sql:'group statement'中的未知列'name'

name表格中没有route。 表结构是:

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'

答案 3 :(得分:0)

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'