我想知道1c的答案应该是什么。在这个网站上:
SELECT company
FROM route WHERE stop=4
GROUP BY name, ID
这显然不起作用,无论如何,ID和名称都不会显示出来。这里缺少什么?感谢。
答案 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'