0

我正在尝试做一个选择声明,但我无法让它工作。

我有 3 张桌子: places, tags,places_tags

Places:
   - id
   - name

Tags:
   - id
   - name

Places_tags:
   - place_id
   - tag_id
   - order

我正在尝试选择地点并加入插入的第一个标签(使用顺序)

        SELECT p.*, t.tag_id AS 标记
        FROM `places` 作为 p
        LEFT JOIN places_tags t ON (t.place_id = p.id)
        按 p.id 分组

这就是我现在所拥有的。我需要添加诸如 ORDER BY order DESC 之类的东西...

我认为我做得不对。

4

1 回答 1

0

像下面这样的东西应该可以工作:

SELECT 
   p.name AS "place", 
   t.name AS "firstTag" 
FROM 
   places p 
   LEFT JOIN
   places_tags pt1 
      ON pt1.place_id = p.id
   LEFT JOIN
   places_tags pt2 
      ON pt2.place_id = p.id AND pt2.tag_id < pt1.tag_id
   LEFT JOIN 
   tags t 
      ON t.id = pt1.tag_id
WHERE
   pt2.tag_id IS NULL
于 2012-10-14T19:18:36.900 回答