【发布时间】:2014-01-03 00:48:43
【问题描述】:
您好,我有 3 张桌子,例如
1) 餐桌路线
route_id
route_name
total_stop
2) 餐桌停靠点
stop_id
stop_name
stop_address
stop_latitude
stop_longitude
3) 表 route_stop
route_id
stop_id
stop_position
我的查询是
SELECT
routes.route_name,
(SELECT
CONCAT(
stops.stop_latitude,
",",
stops.stop_longitude
)
FROM
stops
WHERE stops.stop_id = route_stop.stop_id
AND route_stop.stop_position = 1) AS start_pt,
(SELECT
CONCAT(
stops.stop_latitude,
",",
stops.stop_longitude
)
FROM
stops
WHERE stops.stop_id = route_stop.stop_id
AND route_stop.stop_position = routes.total_stop) AS end_pt,
routes.total_stop
FROM
routes
INNER JOIN route_stop
ON routes.route_id = route_stop.route_id
INNER JOIN stops
ON route_stop.stop_id = stops.stop_id
GROUP BY routes.route_id ;
这里end_pt 列返回NULL,我在这里做错了什么。请帮忙....
编辑:表结构+数据,SQL FILE
【问题讨论】:
-
不确定这是答案还是错字,但在您的子查询中您引用了
routes.total_stop,而您使用名为total_stops(复数)的列定义了表。 -
另外,您能否提供每个表中的数据样本以及您当前获得的输出。
-
stops.stop_latitude 或stops.stop_longitude 是否包含NULL?
-
@aaroncatlin 我的错误,我已经编辑了
-
考虑提供适当的 DDL 和/或 sqlfiddle 以及所需的结果集