我有一张表items
,这是地图上的点。他们列出了表item_stations
(item_id
,station_id
)中最近的地铁站。这些电台的名称放在表stations
(id
,station_name
,station_direction
,......)中。
所以我需要在SQL查询项目数据中返回最近站点的名称。
SELECT
i.id, i.title, i.description,
GROUP_CONCAT(s.station_id) as stations_ids,
FROM items i
LEFT JOIN item_stations s ON s.item_id = s.id
WHERE id = ?
GROUP BY i.id
LIMIT 1
我必须如何INNER JOIN
在stations
上写stations.id = s.station_id
?
答案 0 :(得分:2)
可能你想要这样的东西?
SELECT
i.id, i.title, i.description,
GROUP_CONCAT(s.station_id) as stations_ids,
GROUP_CONCAT(stations.station_name) as stations_names
FROM
items i
LEFT JOIN
item_stations s ON s.item_id = s.id
INNER JOIN stations on
stations.id = s.station_id
WHERE i.id = ?
GROUP BY i.id, i.title, i.description
LIMIT 1
我将 i .id放在WHERE块中,因为 id 字段位于2个表 - item_stations和items中。 Mb那是个问题?