0

我有一张表items,它是地图上的点。他们在表item_stations( item_id, station_id) 中有最近的地铁站列表。这些电台的名称放在表中stations( id, station_name, station_direction, ...)。

所以我需要在 SQL-query item-data 中返回最近车站的名称。

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 JOINWITH table stationsON stations.id = s.station_id

4

1 回答 1

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有问题吗?

于 2013-05-16T15:23:32.277 回答