2
我有一个活动表,带基本信息和Event.IDSQL一个一对多的加入/总
然后我有多个类别,其中我使用的“标签”。
Event_Categories (stores each 'tag')
- id
- name
Events_Categories (links tags to event ID)
- event_id
- event_category_id
我需要执行一个SQL查询,它将返回事件信息以及所有标记。
SELECT * FROM `events`
JOIN (`event_categories`
JOIN `events_categories` ON `event_categories`.`id` = `events_categories`.`event_category_id`)
ON `events`.`id` = `events_categories`.`event_id`
使用每个单独的标签多次返回“事件”。
当我追加GROUP BY event_categories.name
时,它返回不同的事件,但只显示一个标记。
我确信这已经在这里被覆盖,但通过搜索,我找不到解决方案。
谢谢!
真棒&感谢编辑。然而,如果你不介意的话,还有更多的大脑选择。当我添加一个WHERE子句('e.id = x')时,它会按照预期返回特定的事件和所有标记。但是当我使用c.name IN(“any”,“tag”)标记名进行搜索时,它会返回事件,但不是与该事件相关的所有标记,只有我搜索的标记,如果这有意义的话?谢谢 – BigDistance
@BigDistance。 。 。如果在标签名称上添加一个“where”子句,那么您将只获得这些标签。如果你想获得所有具有一定标签集合的事件,那就问另一个问题,因为这与这个问题完全不同。 –
好的,感谢您的帮助@ gorden-linoff。无论如何,最好这些都是分开的功能。我已经发布了一个新的Q:[link](http://stackoverflow.com/questions/18047093/) – BigDistance