MySQL:如何使用LEFT JOIN结果INNER JOIN

时间:2013-05-16 15:03:28

标签: mysql left-join inner-join

我有一张表items,这是地图上的点。他们列出了表item_stationsitem_idstation_id)中最近的地铁站。这些电台的名称放在表stationsidstation_namestation_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 JOINstations上写stations.id = s.station_id

1 个答案:

答案 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那是个问题?